我有一个三维数组和一个向量
A = array(1:24, dim = 2:4 )
v = c(3,2,1,2)
我想生成一个二维矩阵,我们只从每个第三维“块”i
中选择一列 - 由v[i]
索引的一列。例如,输出矩阵的第一列应该是A[,,1]
的第三列,因为v[1] = 3
。
答案 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