R 解压列(简单,但我正在努力!)

R 解压列(简单,但我正在努力!),r,R,我有一个3列的数据框,但这可能更多地取决于我带到数据框中的文件数量,因此我创建了最后一列,第4列带有数字代码,以告诉我要将数据放在何处。每列包含4组数据,因此我对它们进行了编码 我想根据排序列取消这三列的堆叠,这样我现在有12列3列x 4组 我知道这可能很简单,但我就是搞不懂 提前谢谢 这可以通过以下方式完成: 看起来您在数据框中有一些列表。如果您可以在此基础上展示一些示例和预期结果,那么它将是easierdf=do.callcbind,splitdf[,-ncoldf],df$nameofco

我有一个3列的数据框,但这可能更多地取决于我带到数据框中的文件数量,因此我创建了最后一列,第4列带有数字代码,以告诉我要将数据放在何处。每列包含4组数据,因此我对它们进行了编码

我想根据排序列取消这三列的堆叠,这样我现在有12列3列x 4组

我知道这可能很简单,但我就是搞不懂

提前谢谢

这可以通过以下方式完成:


看起来您在数据框中有一些列表。如果您可以在此基础上展示一些示例和预期结果,那么它将是easierdf=do.callcbind,splitdf[,-ncoldf],df$nameofcolumn4,这样做可以奏效。
df <- cbind(matrix(1:24,8,dimnames=list(NULL,c(letters[1:3]))),code=rep(1:4,each=2));
df;
##      a  b  c code
## [1,] 1  9 17    1
## [2,] 2 10 18    1
## [3,] 3 11 19    2
## [4,] 4 12 20    2
## [5,] 5 13 21    3
## [6,] 6 14 22    3
## [7,] 7 15 23    4
## [8,] 8 16 24    4
reshape(transform(df,id=ave(code,code,FUN=seq_along)),dir='w',timevar='code')[-1];
##   a.1 b.1 c.1 a.2 b.2 c.2 a.3 b.3 c.3 a.4 b.4 c.4
## 1   1   9  17   3  11  19   5  13  21   7  15  23
## 2   2  10  18   4  12  20   6  14  22   8  16  24