从多维数组

时间:2016-04-21 07:52:05

标签: arrays r multidimensional-array

我有一个三维数组和一个向量

A = array(1:24, dim = 2:4 )
v = c(3,2,1,2)

我想生成一个二维矩阵,我们只从每个第三维“块”i中选择一列 - 由v[i]索引的一列。例如,输出矩阵的第一列应该是A[,,1]的第三列,因为v[1] = 3

1 个答案:

答案 0 :(得分:1)

plyr救援将数组转换为矩阵列表。然后,您可以通过Map

继续进行列提取
library(plyr)

do.call(cbind, Map(function(m,i) m[,i], alply(A, 3), v))
#     1  2  3  4
#[1,] 5  9 13 21
#[2,] 6 10 14 22
相关问题