我要重新排列数据框,如下所示:前3列必须附加在另一个下方,第二列3附加。ID和Class列必须根据数据框重新排列而保留。
起始数据框ID df
set.seed(1)
df <- data.frame(ID = rep(c("CT1", "CT2", "CT3", "SB1", "SB2","SB3","AM1", "AM2", "AM3")),
Class = rep(c("CT", "SB", "AM"), each = 3),
replicate(6,sample(0:100,9,rep=TRUE)))
输出为 df2
set.seed(1)
df2 <- data.frame(ID = c(rep(c("CT1", "CT2", "CT3", "SB1", "SB2","SB3","AM1", "AM2", "AM3" ), times=3)),
Class = rep(rep(c("CT", "SB", "AM"), each= 3), times=3),
replicate(2,sample(0:100,27,rep=TRUE)))
我曾尝试几个利用方式merge
由id.vars
ID
和Class
我们可能会使用
data.frame(df[, c("ID", "Class")], X1 = unlist(df[, 3:5]), X2 = unlist(df[, 6:8]))
# ID Class X1 X2
# X11 CT1 CT 26 38
# X12 CT2 CT 37 87
# X13 CT3 CT 57 34
# X14 SB1 SB 91 48
# X15 SB2 SB 20 60
# X16 SB3 SB 90 49
# ...
前两列通过回收扩展,而另两列使用方便地构造unlist
。如果这是您的实际问题,并且没有成百上千的三胞胎,那么在这种情况下,实际上并不需要任何花哨的东西。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句