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


R row.names 获取和设置 DataFrame 的行名称


R语言 row.names 位于 base 包(package)。

说明

所有 DataFrame 都有行名称、长度为没有重复值或缺失值的行数的字符向量。

有用于获取和设置行名称的通用函数,以及数组的默认方法。这里的说明是针对data.frame方法的。

`.rowNamesDF<-` 是一个(非通用替换)函数,用于设置数据帧的行名称,带有额外参数 make.names 。此函数仅作为解决方法存在,因为我们无法在不破坏现有包中的遗留代码的情况下轻松更改 row.names<- 泛型。

用法

row.names(x)
row.names(x) <- value
.rowNamesDF(x, make.names=FALSE) <- value

参数

x

"data.frame" 的对象,或已定义方法的任何其他类。

make.names

logical ,即 FALSE, NA, TRUE 之一,指示如果指定的行名称(即 value )无效(例如重复或 NA )应该发生什么。默认值(向后兼容) FALSE 将发出错误信号,其中 NA 将 “automatic” 行名称,而 TRUE 将调用 make.names(value, unique=TRUE) 来构造有效名称。

value

除非是整数向量,否则要强制转换为字符的对象。它的长度(强制后)应与 x 的行数相同,没有重复值或缺失值。 NULL 也是允许的:请参阅“详细信息”。

细节

DataFrame (根据定义)具有行名称向量,其长度为 DataFrame 中的行数,并且既不包含缺失值也不包含重复值。如果软件添加了行名称序列来满足此要求,则它们被视为‘automatic’。

行名称当前允许是整数或字符,但为了向后兼容(与R<= 2.4.0)row.names将始终返回一个字符向量。 (使用attr(x, "row.names")如果您需要检索一组整数值的行名称。)

使用 NULL 作为值会将行名称重置为 seq_len(nrow(x)) ,视为 ‘automatic’。

row.names 返回一个字符向量。

row.names<- 返回行名称已更改的 DataFrame 。

注意

row.names 与数组的 rownames 类似,它有一个为数组参数调用 rownames 的方法。

n > 21:n 形式的行名称在内部以紧凑形式存储,这可以从 C 代码或通过解析看到,但绝不会通过 row.namesattr(x, "row.names") 看到。此外,此类名称的某些名称被标记为‘automatic’,并由as.matrixdata.matrix(以及可能的其他函数)以不同方式处理。 (所有zero-row数据帧都被视为具有自动行名称。)

例子

## To illustrate the note:
df <- data.frame(x = c(TRUE, FALSE, NA, NA), y = c(12, 34, 56, 78))
row.names(df) <- 1 : 4
attr(df, "row.names") #> 1:4
deparse(df) # or dput(df)
##--> c(NA, 4L) : Compact storage, *not* regarded as automatic.

row.names(df) <- NULL
attr(df, "row.names") #> 1:4
deparse(df) # or dput(df) -- shows
##--> c(NA, -4L) : Compact storage, regarded as automatic.

参考

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.framerownamesnames

.row_names_info 用于内部表示。

相关用法


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