重新排列多列数据框

铝14

我要重新排列数据框,如下所示:前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)))

我曾尝试几个利用方式mergeid.vars IDClass

朱利叶斯·维诺拉(Julius Vainora)

我们可能会使用

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章