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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。