我有一个 3 维数组,并希望通过逐行堆叠一维(组合一维的行)来折叠为二维。在我的代码中,我在每个索引处用二维数组填充了一个“工作表”(第 3 维),现在我想采用该 3 维数组并将这些工作表的行彼此堆叠。
这是一个示例数组,因此我可以解释我希望最终结果的样子:
x <- array(1:24, dim=c(2, 3, 4),
dimnames=list(letters[1:2], LETTERS[1:3], letters[23:26]))
dim(x)
我希望w
, x
, y
,z
在一个二维数组中相互堆叠,该数组有 8 行和 3 列。这是一种很麻烦的方法(在我的循环中是不可能的):
x1<-x[,,1]
x2<-x[,,2]
x3<-x[,,3]
x4<-x[,,4]
All<-rbind(x1,x2,x3,x4)
我看过,abind
但adrop
它们并不完全正确。
我也试过aperm
,但我不认为你可以用这个来减少尺寸,只是转置(?)
或者,我可以创建一个list
(实际上这将是理想的,因为数组可能具有不同的行号)。在那种情况下,我将如何以相同的方式组合列表中多个元素的行?
谢谢!