【发布时间】:2017-01-18 20:44:14
【问题描述】:
我无法将 data.frame 中的行堆叠成一行。我的数据如下所示:
v1 v2 v3 index
var1 ad b1 1
var2 sa b2 2
var3 4 b3 3
var1 5 b4 1
var2 6 b5 2
var3 2 b6 3
. . . .
. . . .
. . . .
我正在尝试转置数据,以便 v1 成为我的 colnames 并且它们也被堆叠。我熟悉本机转置命令t() 并将列名分配为第一行。但是,我不确定如何堆叠行。我确实分解了每组转置的行(以三个为单位),然后将它们绑定在一个循环中,但它非常慢,因为我的数据集是 1gb。
var1 var2 var3
ad sa 4
b1 b2 b3
5 6 2
b4 b5 b6
. . .
. . .
. . .
感谢您的帮助!
【问题讨论】:
-
您应该能够使用
tidyr::spread或reshape2::dcast(搜索类似“数据长到宽”的内容),但您可能需要首先创建一个id列来标识哪个行一起去。如果您的行按您想要的方式排序,可能就像0:(nrow(your_data) - 1) %/% 3一样简单。
标签: r