Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

In R data.frame, promote rownames to actual column

Tags:

dataframe

r

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
like image 835
Kavipriya Avatar asked Nov 22 '25 11:11

Kavipriya


1 Answers

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
like image 129
bgoldst Avatar answered Nov 25 '25 03:11

bgoldst