data.frame
位於 base
包(package)。 說明
函數data.frame()
創建 DataFrame ,緊密耦合的變量集合,它們共享矩陣和列表的許多屬性,被大多數人用作基本數據結構R的建模軟件。
用法
data.frame(..., row.names = NULL, check.rows = FALSE,
check.names = TRUE, fix.empty.names = TRUE,
stringsAsFactors = FALSE)
參數
... |
這些參數的形式為 |
row.names |
|
check.rows |
如果 |
check.names |
合乎邏輯的。如果 |
fix.empty.names |
邏輯指示參數 “unnamed” (在沒有正式稱為 |
stringsAsFactors |
邏輯:字符向量應該轉換為因子嗎? ‘factory-fresh’默認值是 |
細節
DataFrame 是具有相同行數且具有唯一行名稱的變量列表,給定類 "data.frame"
。如果不包含變量,則行名稱決定行數。
列名稱不應為空,嘗試使用空名稱將產生不受支持的結果。允許重複的列名,但您需要使用 check.names = FALSE
for data.frame
來生成這樣的 DataFrame 。但是,並非數據幀上的所有操作都會保留重複的列名稱:例如,類似矩陣的子集將強製結果中的列名稱是唯一的。
data.frame
通過調用將其每個參數轉換為 DataFrame as.data.frame(optional = TRUE)
。由於這是一個通用函數,因此可以編寫方法來根據參數的類更改參數的行為:R有很多這樣的方法。傳遞給的字符變量data.frame
如果不受保護,則轉換為因子列I
和論證stringsAsFactors
是真的。如果將列表或 DataFrame 或矩陣傳遞給data.frame
就好像每個組件或列都作為單獨的參數傳遞(受保護的矩陣除外)I
)。
傳遞給 data.frame
的對象應具有相同的行數,但原子向量(請參閱 is.vector
)、受 I
保護的因子和字符向量將在必要時被回收整數次(包括作為列表參數的元素) )。
如果在對 data.frame
的調用中未提供行名稱,則行名稱將從具有合適名稱的第一個組件中獲取,例如命名向量或具有行名稱的矩陣或 DataFrame 。 (如果該組件隨後被回收,則名稱將被丟棄並帶有警告。)如果 row.names
作為 NULL
提供,或者未找到合適的組件,則行名稱是從 1 開始的整數序列(並且此類行名稱被視為為 ‘automatic’,並且不被 as.matrix
保留)。
如果提供的行名稱長度為 1 並且數據幀隻有一行,則使用 row.names
來指定行名稱而不是列(按名稱或編號)。
名稱將從不受 I
保護的向量輸入中刪除。
值
DataFrame ,一種類似矩陣的結構,其列可以是不同類型(數字、邏輯、因子和字符等)。
DataFrame 的名稱是如何創建的很複雜,本段的其餘部分隻是基本的故事。如果參數都是命名的簡單對象(不是列表、 DataFrame 矩陣),則參數名稱給出列名稱。對於未命名的簡單參數,參數的解析版本用作名稱(刪除了封閉的 I(...)
)。對於具有多個命名列的命名矩陣/列表/ DataFrame 參數,列的名稱是參數名稱後跟一個點和參數內的列名稱:如果參數未命名,則為參數的列名稱被使用。對於包含單個列的命名或未命名矩陣/列表/ DataFrame 參數,結果中的列名稱是參數中的列名稱。最後,名稱被調整為唯一且語法有效,除非 check.names = FALSE
。
注意
在以下版本中R2.4.0之前row.names
必須是字符:以確保與此類版本的兼容性R,提供一個字符向量作為row.names
爭論。
例子
L3 <- LETTERS[1:3]
char <- sample(L3, 10, replace = TRUE)
(d <- data.frame(x = 1, y = 1:10, char = char))
## The "same" with automatic column names:
data.frame(1, 1:10, sample(L3, 10, replace = TRUE))
is.data.frame(d)
## enable automatic conversion of character arguments to factor columns:
(dd <- data.frame(d, fac = letters[1:10], stringsAsFactors = TRUE))
rbind(class = sapply(dd, class), mode = sapply(dd, mode))
stopifnot(1:10 == row.names(d)) # {coercion}
(d0 <- d[, FALSE]) # data frame with 0 columns and 10 rows
(d.0 <- d[FALSE, ]) # <0 rows> data frame (3 named cols)
(d00 <- d0[FALSE, ]) # data frame with 0 columns and 0 rows
參考
Chambers, J. M. (1992) Data for models. Chapter 3 of Statistical Models in S eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole.
也可以看看
I
、 plot.data.frame
、 print.data.frame
、 row.names
、 names
(用於列名稱)、[.data.frame
用於子集方法和 I(matrix(..))
示例; Math.data.frame
等,關於 data.frame
的 Group 方法; read.table
、 make.names
、 list2DF
用於從變量列表創建 DataFrame 。
相關用法
- R data.class 對象類
- R data.matrix 將 DataFrame 轉換為數字矩陣
- R date 係統日期和時間
- R dump R 對象的文本表示
- R diag 矩陣對角線
- R deparse 表達式解析
- R deparseOpts 表達式解析選項
- R dots ...、..1 等在函數中使用
- R debug 調試函數
- R do.call 執行函數調用
- R dcf 以 DCF 格式讀寫數據
- R dimnames 對象的暗名稱
- R dyn.load 對外函數接口
- R diff 滯後差異
- R dput 將對象寫入文件或重新創建它
- R duplicated 確定重複元素
- R dim 物體的尺寸
- R dontCheck 抑製檢查的身份函數
- R drop 刪除冗餘盤區信息
- R delayedAssign 延遲評估和承諾
- R difftime 時間間隔/差異
- R det 計算矩陣的行列式
- R detach 從搜索路徑中分離對象
- R double 雙精度向量
- R droplevels 刪除因子中未使用的級別
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Data Frames。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。