數(shù)據(jù)框
一、定義
數(shù)據(jù)框是一種表格式的數(shù)據(jù)結(jié)構(gòu),與excel原表很像唆涝,形狀上很像矩陣找都,每一列必須同一類型,每一行可以不同廊酣。數(shù)據(jù)框旨在模擬數(shù)據(jù)集能耻,與其他統(tǒng)計軟件例如SAS或者SPSS中的數(shù)據(jù)集的概念一致。數(shù)據(jù)集通常是由數(shù)據(jù)構(gòu)成的一個矩形數(shù)組亡驰,行表示觀測晓猛,列表示變量。不同的行業(yè)對于數(shù)據(jù)集的行和列叫法不同凡辱。
數(shù)據(jù)框?qū)嶋H上是一個列表戒职。列表中的元素是向量,這些向量構(gòu)成數(shù)據(jù)框的列,每一列必須具有相同的長度透乾,所以數(shù)據(jù)框是矩形結(jié)構(gòu)洪燥,而且數(shù)據(jù)框的列必須命名。
——引用自B站基因?qū)W苑up主教學(xué)視頻中的一段文字
二乳乌、數(shù)據(jù)框與矩陣的區(qū)別
1捧韵、數(shù)據(jù)框形狀上很像矩陣;
2、數(shù)據(jù)框是比較規(guī)則的列表;
3汉操、矩陣必須為同一數(shù)據(jù)類型;
4再来、數(shù)據(jù)框每一列必須同一類型,每一行可以不同磷瘤。
三芒篷、創(chuàng)建數(shù)據(jù)框
我們?nèi)绻雽?shù)據(jù)存儲到R中進行進行分析,只需要每個數(shù)據(jù)單獨存儲為一個向量采缚,用data.frame()函數(shù)合并即可针炉。
state<-data.frame(state.name,state.abb,state.region,state.x77)
四、訪問數(shù)據(jù)框
1.訪問數(shù)據(jù)框子集合
數(shù)據(jù)框訪問數(shù)據(jù)和向量仰担,列表等類似
- 用數(shù)據(jù)框名稱[數(shù)值]糊识,例如state[1]輸出數(shù)據(jù)框第一列。
- 用數(shù)據(jù)框名稱[數(shù)組]摔蓝,例如state[c(2,4,6)]輸出數(shù)據(jù)框第2,4和6列赂苗。
這種訪問方法會輸出數(shù)據(jù)的列命和對應(yīng)元素值
2.訪問數(shù)據(jù)框子集合(不包含字段名稱)
例如:
- 索引訪問: state[,2]
- 字段訪問:state[,"state.abb"]
- $符號訪問(大佬推薦使用),不是數(shù)據(jù)框則沒有辦法用$:
state$state.abb
- attach函數(shù)訪問:attach(數(shù)據(jù)框名)加載數(shù)據(jù)框到R搜索目錄中贮尉,運行該命令后就可以在當(dāng)前窗口中直接輸入數(shù)據(jù)框列的名字就可以了拌滋,使用完數(shù)據(jù)之后可以使用detach(數(shù)據(jù)框名)取消加載。
- with函數(shù)訪問:with函數(shù)也可以完成和attach類似的功能猜谚,形如**with(數(shù)據(jù)框名,{數(shù)據(jù)框中列的名字})
- 雙中括號訪問:[[ ]]與列表用法相似,返回是向量
3.訪問數(shù)據(jù)框元素
輸入對應(yīng)行和列即可輸出對應(yīng)元素
例如:
- 索引訪問: state[1,2]
- 字段訪問:state["Alabama","state.abb"]
4.計算數(shù)據(jù)框的長度和寬度 - dim(數(shù)據(jù)框名稱)
- length(數(shù)據(jù)框名稱)
- 計算某一列長度length(數(shù)據(jù)框名稱$列名)
五败砂、刪除數(shù)據(jù)框子集合
- 負索引方法
用數(shù)據(jù)框名稱[-數(shù)值]赌渣,例如state[-1]刪除數(shù)據(jù)框第一列。同樣的昌犹,用數(shù)組的方法可以一次刪除多列坚芜。 - 賦空值方法
將數(shù)據(jù)框某一列賦值為NULL,以達到刪除目的
state[5]<-NULL
attach():加載數(shù)據(jù)框到R搜索目錄中