在R data.frame中,将rownames提升为实际列

时间:2015-07-09 05:24:11

标签: r dataframe

我有一个数据框,其中包含一个列和行名称,

 > df
             freq
    hello     4
    sorry     2
    bad       9
    good      4     
    great     1

我想将其更改为如下所示的两列并更改行名称

 > df
         word   freq
    1    hello   4
    2    sorry   2
    3    bad     9
    4    good    4
    5    great   1

2 个答案:

答案 0 :(得分:6)

df <- data.frame(freq=c(4,2,9,4,1),row.names=c('hello','sorry','bad','good','great'));
df;
##       freq
## hello    4
## sorry    2
## bad      9
## good     4
## great    1
df <- data.frame(word=rownames(df),freq=df$freq);
df;
##    word freq
## 1 hello    4
## 2 sorry    2
## 3   bad    9
## 4  good    4
## 5 great    1

编辑:第二个想法,更好的方法是避免必须对现有列的名称进行硬编码,并且可以使用任意数量的现有列,如下所示:

df <- data.frame(word=rownames(df),df,row.names=NULL);
df;
##    word freq
## 1 hello    4
## 2 sorry    2
## 3   bad    9
## 4  good    4
## 5 great    1

答案 1 :(得分:2)

你可以这样做

   df$word=row.names(df)
相关问题