首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用as.data.frame()在R中重复行名

使用as.data.frame()在R中重复行名
EN

Stack Overflow用户
提问于 2018-02-28 14:10:16
回答 1查看 2.4K关注 0票数 4

在R数据帧中,行名必须是唯一的。

代码语言:javascript
复制
df <- mtcars
rownames(df) <- rep("duplicate!", nrow(df))
> Error in `row.names<-.data.frame`(`*tmp*`, value = value) : 
>   duplicate 'row.names' are not allowed
> In addition: Warning message:
> non-unique value when setting 'row.names': ‘duplicate!’ 

代码语言:javascript
复制
df <- data.frame(mtcars, row.names=rep("duplicate!", nrow(mtcars)))
> Error in data.frame(mtcars, row.names = rep("duplicate!", nrow(mtcars))) : 
  duplicate row.names: duplicate!

那么,使用as.data.frame()进行以下行为的动机是什么?这是故意的还是错误的?

代码语言:javascript
复制
m <- as.matrix(mtcars)
rownames(m) <- rep("duplicate!", nrow(m))
df <- as.data.frame(m)

其结果如下:

代码语言:javascript
复制
any(duplicated(rownames(df)))  # == TRUE
nrow(df)  # == 32
length(unique(rownames(df)))  # == 1
df["duplicate!", ]  # returns a single row...
>            mpg cyl disp  hp drat   wt  qsec vs am gear carb
> duplicate!  21   6  160 110  3.9 2.62 16.46  0  1    4    4

(运行R版本3.4.3 (2017-11-30))

EN

回答 1

Stack Overflow用户

发布于 2018-03-07 20:47:46

是的,正如Martyn在他的回复中的官方R邮件列表(回复)中确认的那样,这是一个bug,我可能很快就会对修复这个错误的消息来源进行修改。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49031523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档