R,如何从字符设置行名属性为数字?

时间:2019-01-19 07:27:08

标签: r

我是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"   

我不知道该怎么办。请帮助我

1 个答案:

答案 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-都不使用行名。