我是R的新手,想知道如何将行名的属性设置为数字。 我试图用
按行名对数据框进行排序df[ order(row.names(df)),]
结果就像
A B C D E
1 13 6 4 4 3
10 16 5 3 8 3
100 6 4 12 14 5
101 2 14 15 3 10
102 5 2 2 9 5
103 9 1 12 3 15
104 15 1 1 8 2
105 2 10 14 7 4
106 6 2 10 2 9
107 3 1 1 3 22
108 11 4 1 6 15
109 4 29 2 6 2
11 6 29 1 4 1
我尝试过
row.names(df) <- attr(df, "row.names")
row.names(df) <- as.numeric(row.names(df))
但是当我再次检查行名时,它又回到了
[1] "character" "vector" "data.frameRowLabels" "SuperClassMethod"
我不知道该怎么办。请帮助我
答案 0 :(得分:0)
在?row.names
的R帮助下:
所有数据帧均具有行名属性,其字符向量的长度为行数,没有重复也没有值。
这意味着行名将始终是字符向量。您将需要使用注释中建议的解决方法,以使它们作为整数“可用”,基本上总是强制性的。一种建议可能是您创建一个整数类的id
列,并且不要使用row.names
作为id:
df$id <- as.integer(row.names(df))
df[order(df$id), ]
省略row.names
似乎也是流行的数据框架重新思考的方法,例如data.table或tibble-都不使用行名。