简体   繁体   中英

In R data.frame, promote rownames to actual column

I have a data frame with one column and row names like this,

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

I want to change that to two columns as below and change row names,

 > df
         word   freq
    1    hello   4
    2    sorry   2
    3    bad     9
    4    good    4
    5    great   1
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

Edit: On second thought, a better way to do this, which avoids having to hard-code the name of the existing column, and will work with any number of existing columns, is as follows:

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

你可以这样做

   df$word=row.names(df)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM