对多维数组列表进行子集化

Subsetting a list of multidimensional arrays

我正在尝试将 3d 数组列表子集化为 return 矩阵列表。我假设答案涉及 lapply,但我发现之前的所有问题都因其他问题而变得复杂。

玩具示例:

x <- array(1:300, dim=c(20, 5, 3))
y <- array(301:600, dim=c(20, 5, 3))

list <- list(x ,y)

我想要两个数组中的 [1] 个元素,放在一个新的矩阵列表中。

供将来参考 - 尽量不要在全局环境中覆盖 built-in 函数,例如 list

回答您的问题:

lapply(list(x,y), function(m) m[,,1])

lapply 将遍历列表中的所有元素,将每个元素作为参数传递给您提供的函数。