从R中的列表确定长度

时间:2018-10-31 05:20:20

标签: arrays r list

我有一个列表,其中每个元素都是一个数组。示例数据:

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

1 个答案:

答案 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个数组的总数求和来获得3x3list个数组的总数。