我在R中有一个3d数组,说尺寸为500 * 3 * 5,称其为数据。因此有5个矩阵切片,每个矩阵有500行和3列。现在,我想创建一个新的矩阵,该矩阵垂直堆叠5个切片。所以输出有500 * 5行和5列,看起来像这样:
[dim1] [ dim3 ] [1] [2] [3]
1 1 data data data
1 2 data data data
1 3 data data data
1 4 data data data
1 5 data data data
2
2
2
..
500 1 data data data
500 2 data data data
500 3 data data data
500 4 data data data
500 5 data data data
因此,对于每500行,请重复原始数组的第2维和第3维,以便column1重复原始行索引,column2重复旧的z维索引,第3-5列是数据的3列(数字并具有缺失值) )。我只是在这里使用数字5,在我的数据中,这个数字要大得多,所以我需要能够更一般地执行此操作。谢谢!!!
让a
是你的3D阵列,你可以这样做:
n <- dim(a)
b <- aperm(a, c(3,1,2))
dim(b) <- c(n[3] * n[1], n[2])
如果要在左侧添加暗淡索引,可以执行以下操作:
b <- cbind(rev(expand.grid(dim3 = 1:n[3], dim1 = 1:n[1])), b)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句