In R data.frame, promote rownames to actual column

后端 未结 2 498
不思量自难忘°
不思量自难忘° 2020-12-11 11:04

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

 > df
             freq
    hello     4
    sorry     2
    bad       9
    good      4     
         


        
相关标签:
2条回答
  • 2020-12-11 11:22
    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
    
    0 讨论(0)
  • 2020-12-11 11:33

    you can just do this

       df$word=row.names(df)
    
    0 讨论(0)
提交回复
热议问题