首页 > 解决方案 > 重新排列 data.frame(使用 col 名称作为因素)

问题描述

我有以下数据框:

a<-c(1,3,5,6)
b<-c(5,8,9,10)
df<-data.frame(a,b)
colnames(df)<-c('tata','toto')
> df
  tata toto
1    1    5
2    3    8
3    5    9
4    6   10

现在,我想创建一个新的 data.frame,如下所示:

> df1
  all  rep
1   1 toto
2   3 toto
3   5 toto
4   6 toto
5   5 tata
6   8 tata
7   9 tata
8  10 tata

如果 df 有 2 列,则很容易使用

rep1<-c(rep('toto',length(a)))
rep2<-c(rep('tata',length(a)))
rep<-c(rep1,rep2)
all<-c(a,b)
df1<-data.frame(all,rep)

因为我有 98 列,所以我想知道是否有效率。非常感谢

标签: rdataframe

解决方案


你也可以使用收集也许

library(tidyr)
gather(df,key="rep", value = "all")

推荐阅读