当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R as.data.frame 强制数据帧


R语言 as.data.frame 位于 base 包(package)。

说明

检查对象是否是 DataFrame 的函数,或者如果可能的话强制它。

用法

as.data.frame(x, row.names = NULL, optional = FALSE, ...)

## S3 method for class 'character'
as.data.frame(x, ...,
              stringsAsFactors = FALSE)

## S3 method for class 'list'
as.data.frame(x, row.names = NULL, optional = FALSE, ...,
              cut.names = FALSE, col.names = names(x), fix.empty.names = TRUE,
              check.names = !optional,
              stringsAsFactors = FALSE)

## S3 method for class 'matrix'
as.data.frame(x, row.names = NULL, optional = FALSE,
              make.names = TRUE, ...,
              stringsAsFactors = FALSE)

as.data.frame.vector(x, row.names = NULL, optional = FALSE, ...,
                     nm = deparse1(substitute(x)))

is.data.frame(x)

参数

x

任何R对象。

row.names

NULL 或给出 DataFrame 行名称的字符向量。不允许存在缺失值。

optional

合乎逻辑的。如果TRUE,设置行名称并转换列名称(到语法名称:请参阅make.names) 是可选的。请注意,所有Rbaseas.data.frame()使用方法optional只对列名处理,基本同意data.frame(*, check.names = !optional)。另请参阅make.names的论点matrix方法。

...

要传递给方法或从方法传递的附加参数。

stringsAsFactors

逻辑:字符向量应该转换为因子吗?

cut.names

逻辑或整数;指示是否应缩短包含超过 256 个字符(或 cut.names 如果是数字)字符的列名称(并用 " ..." 替换最后 6 个字符)。

col.names

(可选)列名称的字符向量。

fix.empty.names

逻辑指示是否应修复空列名称,即 "" (在 data.frame 中)。

check.names

逻辑性;传递给data.frame() 调用。

make.names

a logical ,即 FALSE, NA, TRUE 之一,指示如果(矩阵 x 的)行名称无效应该发生什么。如果它们无效,则默认 TRUE 调用 make.names(*, unique=TRUE)make.names=NA 将使用 “automatic” 行名称,而 FALSE 值将指示无效行名称的错误。

nm

用作列名称的 character 字符串。

细节

as.data.frame 是一个具有许多方法的通用函数,用户和包可以提供更多方法。对于充当向量的类,通常 as.data.frame.vector 的副本将用作方法。

自从R4.3.0,默认方法将调用as.data.frame.vector()对于原子(如is.atomic)非NULL x.

直接调用as.data.frame.<class>()对于 12 个原子基类,仍然是可能的(基包!),但将被弃用(通过设置环境变量已经明显可见)_R_CHECK_AS_DATA_FRAME_EXPLICIT_METHOD_到非空)在哪里调用as.data.frame.vector()相反,推荐。

如果提供列表,每个元素都会转换为 DataFrame 中的一列。类似地,矩阵的每一列都被单独转换。如果对象的类具有 as.data.frame 的方法,则可以覆盖此设置:两个示例是类 "model.matrix" 的矩阵(作为单列包含)和类 "POSIXlt" 的列表对象(强制转换为类) "POSIXct"

数组可以转换为 DataFrame 。一维数组被视为向量,二维数组被视为矩阵。二维以上的数组通过 ‘flattening’ 第一个之后的所有维度转换为矩阵并创建合适的列标签。

除非受 I 保护,否则字符变量将转换为因子列。

如果提供了数据帧,则 "data.frame" 之前的所有类都将被删除,并且如果提供了该参数,则行名称将被更改。

如果是 row.names = NULL ,则行名称是根据 x 的名称或暗名称构造的,否则是从 1 开始的整数序列。很少有方法检查重复的行名称。名称将从向量列中删除,除非 I

as.data.frame 返回一个数据帧,通常包含所有行名称 ""(如果 optional = TRUE )。

如果 is.data.frame 的参数是数据帧(即,其类中有 "data.frame"),则返回 TRUE,否则返回 FALSE

参考

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.

也可以看看

data.frameas.data.frame.table 用于 table 方法(如果直接调用,则具有附加参数)。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Coerce to a Data Frame。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。