Package?base?version 4.2.0
Description
創(chuàng)建數(shù)據(jù)框(data frame),緊耦合的變量集合,它們共享矩陣和列表的許多屬性,被大多數(shù)R建模軟件用作基本數(shù)據(jù)結(jié)構(gòu)。
數(shù)據(jù)框:一種在統(tǒng)計(jì)分析和數(shù)據(jù)處理中常用的數(shù)據(jù)結(jié)構(gòu),由行和列組成,類(lèi)似于電子表格。
Usage
data.frame(..., row.names = NULL, check.rows = FALSE,
check.names = TRUE, fix.empty.names = TRUE,
stringsAsFactors = FALSE)
Arguments
參數(shù)【...】:這些參數(shù)的形式是 value 或 tag = value。組件名稱是基于標(biāo)簽(如果存在)或解析參數(shù)本身創(chuàng)建的。
參數(shù)【row.names】:NULL 或單個(gè)整數(shù)或字符串,指定要用作行名的列,或一個(gè)字符或整數(shù)向量,為數(shù)據(jù)框提供行名。
參數(shù)【check.rows】:如果為 TRUE,則檢查行長(zhǎng)度與名稱的一致性。
參數(shù)【check.names】:邏輯值。如果為T(mén)RUE,則檢查數(shù)據(jù)框中的變量名,以確保它們是語(yǔ)法上有效的變量名,并且不重復(fù)。如有必要,可以對(duì)它們進(jìn)行調(diào)整(通過(guò)make.names)。
參數(shù)【fix.empty.names】:邏輯值,指示“未命名”的參數(shù)(在沒(méi)有被 someName = arg 正式命名)是否獲得自動(dòng)構(gòu)造的名稱,或者更確切地說(shuō)是 “”。即使 check.names 為 FALSE,如果應(yīng)該保留 “”名稱,也需要設(shè)置為 FASLE。
參數(shù)【stringsAsFactors】:邏輯值:應(yīng)該將字符向量轉(zhuǎn)換為因子嗎?“factory-fresh”的默認(rèn)值以前為T(mén)RUE,但在R 4.0.0 中已更改為FALSE。
Details
數(shù)據(jù)框是給定類(lèi)“data.frame”的具有相同行數(shù)且具有唯一行名的變量列表。如果不包含變量,則行名決定行數(shù)。
列名應(yīng)該是非空的,嘗試使用空名稱將產(chǎn)生不支持的結(jié)果。允許使用重復(fù)的列名,但是您需要對(duì)data.frame使用check.names = FALSE來(lái)生成這樣的數(shù)據(jù)幀。然而,并不是所有對(duì)數(shù)據(jù)幀的操作都會(huì)保留重復(fù)的列名:例如,類(lèi)似矩陣的子集將強(qiáng)制結(jié)果中的列名是唯一的。
data.frame通過(guò)調(diào)用as.data.frame(optional = TRUE)將它的每個(gè)參數(shù)轉(zhuǎn)換為一個(gè)數(shù)據(jù)幀。由于這是一個(gè)泛型函數(shù),因此可以編寫(xiě)方法來(lái)根據(jù)其類(lèi)更改參數(shù)的行為:R提供了許多這樣的方法。傳遞給data.frame的字符變量如果沒(méi)有I保護(hù),并且參數(shù)stringsAsFactors為真,則轉(zhuǎn)換為因子列。如果將列表或數(shù)據(jù)幀或矩陣傳遞給data.frame,則好像每個(gè)組件或列都作為單獨(dú)的參數(shù)傳遞(由I保護(hù)的矩陣除外)。
傳遞給data.frame的對(duì)象應(yīng)該具有相同的行數(shù),但是原子向量(參見(jiàn)is.vector)、因子和受I保護(hù)的字符向量將在必要時(shí)被循環(huán)使用整次(包括作為列表參數(shù)的元素)。
如果在對(duì)data.frame的調(diào)用中沒(méi)有提供行名,則從具有合適名稱的第一個(gè)組件中獲取行名,例如具有行名或數(shù)據(jù)幀的命名向量或矩陣。(如果該組件隨后被回收,則這些名稱將被丟棄并發(fā)出警告。)如果row.names作為NULL提供或沒(méi)有找到合適的組件,則行名是從1開(kāi)始的整數(shù)序列(并且這樣的行名被認(rèn)為是“自動(dòng)的”,而不是由as.matrix保留)。
如果提供的行名長(zhǎng)度為1,并且數(shù)據(jù)幀只有一行,則使用row.names來(lái)指定行名,而不是列名(通過(guò)名稱或數(shù)字)。
從不受I保護(hù)的向量輸入中刪除名稱。
Value
一種數(shù)據(jù)框架,一種類(lèi)似矩陣的結(jié)構(gòu),其列可以是不同的類(lèi)型(數(shù)字、邏輯、因子和字符等)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-832340.html
如何創(chuàng)建數(shù)據(jù)幀的名稱是復(fù)雜的,本段的其余部分只是基本的故事。如果參數(shù)都是命名的簡(jiǎn)單對(duì)象(不是列表、數(shù)據(jù)幀矩陣),則參數(shù)名給出列名。對(duì)于一個(gè)未命名的簡(jiǎn)單參數(shù),使用參數(shù)的離去版本作為名稱(去掉了封閉的I(…))。對(duì)于具有多個(gè)命名列的命名矩陣/列表/數(shù)據(jù)幀參數(shù),列的名稱是參數(shù)的名稱后跟一個(gè)點(diǎn)和參數(shù)內(nèi)的列名:如果參數(shù)未命名,則使用參數(shù)的列名。對(duì)于包含單個(gè)列的已命名或未命名的矩陣/列表/數(shù)據(jù)幀參數(shù),結(jié)果中的列名就是參數(shù)中的列名。最后,將這些名稱調(diào)整為唯一且在語(yǔ)法上有效,除非check.names = FALSE。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-832340.html
Example
L3 <- LETTERS[1:3]
char <- sample(L3, 10, replace = TRUE)
(d <- data.frame(x = 1, y = 1:10, char = char))
x y char 1 1 1 A 2 1 2 A 3 1 3 C 4 1 4 B 5 1 5 B 6 1 6 A 7 1 7 A 8 1 8 A 9 1 9 A 10 1 10 B
data.frame(1, 1:10, sample(L3, 10, replace = TRUE))
X1 X1.10 sample.L3..10..replace...TRUE. 1 1 1 B 2 1 2 C 3 1 3 C 4 1 4 B 5 1 5 A 6 1 6 A 7 1 7 B 8 1 8 A 9 1 9 B 10 1 10 C
is.data.frame(d)
[1] TRUE
(dd <- data.frame(d, fac = letters[1:10], stringsAsFactors = TRUE))
x y char fac 1 1 1 A a 2 1 2 A b 3 1 3 C c 4 1 4 B d 5 1 5 B e 6 1 6 A f 7 1 7 A g 8 1 8 A h 9 1 9 A i 10 1 10 B j
rbind(class = sapply(dd, class), mode = sapply(dd, mode))
x y char fac class "numeric" "integer" "character" "factor" mode "numeric" "numeric" "character" "numeric"
stopifnot(1:10 == row.names(d))
(d0 <- d[, FALSE])
data frame with 0 columns and 10 rows
(d.0 <- d[FALSE, ])
[1] x y char <0 行> (或0-長(zhǎng)度的row.names)
(d00 <- d0[FALSE, ])
data frame with 0 columns and 0 rows
到了這里,關(guān)于R語(yǔ)言【base】——data.frame():創(chuàng)建數(shù)據(jù)框,緊耦合的變量集合,它們共享矩陣和列表的許多屬性,被大多數(shù)R建模軟件用作基本數(shù)據(jù)結(jié)構(gòu)。的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!