統(tǒng)計(jì)分析中一個(gè)完整的數(shù)據(jù)集通常是由若干個(gè)變量的若干個(gè)觀(guān)測(cè)值組成的, 在R中稱(chēng)為數(shù)據(jù)框. 數(shù)據(jù)框是一個(gè)對(duì)像, 它與前面講的矩陣與二維數(shù)組形式上是類(lèi)似的, 也是二維的,也有維數(shù)這個(gè)屬性, 且各個(gè)變量的觀(guān)測(cè)值有相同的長(zhǎng)度. 但不同的是: 在數(shù)據(jù)框中, 行與列的意義是不同的, 其中的列表示變量,而行表示觀(guān)測(cè). 顯示數(shù)據(jù)框時(shí)左側(cè)會(huì)顯示觀(guān)測(cè)值的序號(hào).
數(shù)據(jù)框的建立分為直接的與簡(jiǎn)接的兩種方法:
數(shù)據(jù)框的直接建立
若你在R中建立了一些向量并試圖想由它們生成數(shù)據(jù)框,則可以使用函數(shù)data.frame( ). 例如
> x=c(42,7,64,9)
> y=1:4
> z.df=data.frame(INDEX = y, VALUE = x)
INDEX VALUE
1 1 42
2 2 7
3 3 64
4 4 9
數(shù)據(jù)框中的向量必須有相同的長(zhǎng)度或長(zhǎng)度有倍數(shù)關(guān)系,如果其中有一個(gè)比其它的短,它將按循環(huán)法則“循環(huán)”整數(shù)次. 例如
> weight <- c(70.6, 56.4, 80, 59.5)
> x <- (c("adult", "teen", "adult", "teen"))
> wag <- data.frame(weight, age = x)
> wag
weight age
1 70.6 adult
2 56.4 teen
3 80.0 adult
4 59.5 teen
> x <- 1:4; y <- 2:4
> data.frame(x, y)
錯(cuò)誤于data.frame(x, y) : 變?cè)狄馕吨煌男袛?shù) 4, 3
數(shù)據(jù)框的簡(jiǎn)接建立
一個(gè)數(shù)據(jù)框還可以通過(guò)數(shù)據(jù)文件(文本文件、EXCEL文件或其它統(tǒng)計(jì)軟件的數(shù)據(jù)文件)讀取并建立, 在此我們僅通過(guò)一個(gè)例子來(lái)說(shuō)明如何通過(guò)函數(shù)read.table( ) 讀取文件c:\data\foo.txt中的觀(guān)測(cè)值, 并建立一個(gè)數(shù)據(jù)框.其它簡(jiǎn)接方法可參考下一節(jié)“數(shù)據(jù)的存貯與讀取”的介紹. 已知存于foo.txt上的數(shù)據(jù)如下:
treat weight
A 3.4
B NA
A 5.8
則下面的命令建立了數(shù)據(jù)框foo.
> foo <- read.table(file = "c:/data/foo.txt", header = T)
> foo
treat weight
1 A 3.4
2 B NA
3 A 5.8
適用于數(shù)據(jù)框的函數(shù)
在上一小節(jié)中我們所討論的關(guān)于矩陣的統(tǒng)計(jì)計(jì)算函數(shù)max( ), min( ),median( ), var( ), sd( ), sum( ), cumsum( ), cumprod( ), cummax( ),cummin( ), cov( ), cor( )同樣適用于數(shù)據(jù)框, 意義也相同. 這里通過(guò)R內(nèi)嵌的另一個(gè)數(shù)據(jù)集Puromycin來(lái)說(shuō)明summary( )、pairs( )和xtable( )等的使用.
> attach(Puromycin) # 掛接數(shù)據(jù)集使之激活
> help(Puromycin) # 顯示前幾行
> summary(Puromycin) # 顯示主要的描述性統(tǒng)計(jì)量
conc rate state
Min. :0.0200 Min. : 47.0 treated :12
1st Qu.:0.0600 1st Qu.: 91.5 untreated:11
Median :0.1100 Median :124.0
Mean :0.3122 Mean :126.8
3rd Qu.:0.5600 3rd Qu.:158.5
Max. :1.1000 Max. :207.0
從summary可以看出, 變量conc和rate是數(shù)值型的, 而state為因子變量. 變量之間的關(guān)系可以通過(guò)成對(duì)數(shù)據(jù)散點(diǎn)圖考查:
> pairs(Puromycin, panel = panel.smooth)
最后使用xtabs( )函數(shù)由交叉分類(lèi)因子產(chǎn)生一個(gè)列聯(lián)表:
> xtabs(~state + conc, data = Puromycin)
conc
state 0.02 0.06 0.11 0.22 0.56 1
treated 2 2 2 2 2 2
untreated 2 2 2 2 2 1
下期請(qǐng)期待數(shù)據(jù)框的下標(biāo)與子集的提取








暫無(wú)數(shù)據(jù)