【发布时间】:2016-01-09 13:03:44
【问题描述】:
我正在尝试对 3d 数组列表进行子集化,以返回矩阵列表。我认为答案涉及 lapply,但我发现的所有先前问题都因其他问题而变得复杂。
玩具示例:
x <- array(1:300, dim=c(20, 5, 3))
y <- array(301:600, dim=c(20, 5, 3))
list <- list(x ,y)
我希望将两个数组中的 [,,1] 元素放在一个新的矩阵列表中。
【问题讨论】:
我正在尝试对 3d 数组列表进行子集化,以返回矩阵列表。我认为答案涉及 lapply,但我发现的所有先前问题都因其他问题而变得复杂。
玩具示例:
x <- array(1:300, dim=c(20, 5, 3))
y <- array(301:600, dim=c(20, 5, 3))
list <- list(x ,y)
我希望将两个数组中的 [,,1] 元素放在一个新的矩阵列表中。
【问题讨论】:
为了将来参考 - 尽量不要覆盖全局环境中的内置函数,例如 list。
回答您的问题:
lapply(list(x,y), function(m) m[,,1])
lapply 将遍历列表中的所有元素,将每个元素作为参数传递给您提供的函数。
【讨论】:
lapply(list(x,y), '[', ,,1) 一样