Определение длины из списка в R - PullRequest
0 голосов
/ 31 октября 2018

У меня есть список, где каждый элемент является массивом. Пример данных:

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")) ) )

Я бы хотел найти длину всего списка. Однако, когда я использую длину, я получаю 2, тогда как я хочу 4, потому что есть 4 массива. Есть ли другой способ определить длину моего вопроса?

>length(data)
2

1 Ответ

0 голосов
/ 31 октября 2018

Как это?

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 элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...