我有一个具有唯一ID的数据框和其他列,如下所示:
df = data.frame(id = c('id1', 'id2', 'id3'),
col_1 = c(0,1,0),
col_2 = c(1,0,0),
col_3 = c(1,1,NA),
col_4 = c(1,NA,NA))
如何融合数据框,目的是让2列一个具有id,将根据列数重复,第二列将包含其他列的值。
预期产出的例子:
df = data.frame(id = c('id1', 'id1', 'id1', 'id1', 'id2', 'id2', 'id2', 'id2', 'id3', 'id3', 'id3', 'id3'),
col_1 = c(0,1,1,1,1,0,1,NA,0,0,NA,NA))
答案 0 :(得分:1)
尝试:
library(reshape2)
df = data.frame(id=c('id1', 'id2', 'id3'),col_1 = c(0,1,0),col_2 = c(1,0,0),col_3 = c(1,1,NA),col_4 = c(1,NA,NA))
x <- melt(df, id.vars = "id")
x[order(x$id),c(1,3)]