我有一个数据框,其中包含一个列和行名称,
> 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
答案 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)