我有一个列表,其中每个元素都是一个数组。示例数据:
set.seed(24)
data <- list(individual1 = array(rnorm(3 * 3 * 2, 60),
dim = c(3, 3, 2), dimnames = list(NULL, NULL, c("rep1", "rep2"))),
individual2 = array(rnorm(3 * 3 * 2, 60), dim = c(3, 3, 2),
dimnames = list(NULL, NULL, c("rep1", "rep2")) ) )
我想找到整个列表的长度。但是,当我使用length时,我得到2,而我想要4,因为有4个数组。还有另一种方法来确定我的问题的长度吗?
>length(data)
2
答案 0 :(得分:1)
喜欢吗?
sum(sapply(data, function(x) dim(x)[3]))
#[1] 4
说明:您的list
实际上仅包含2个元素。每个list
元素的尺寸为
lapply(data, dim)
#$individual1
#[1] 3 3 2
#
#$individual2
#[1] 3 3 2
换句话说,每个list
元素都有2个3x3
数组。因此,我们可以通过对每个3x3
元素中的list
个数组的总数求和来获得3x3
中list
个数组的总数。