Дисперсия списка массивов - PullRequest
0 голосов
/ 15 февраля 2019

Предположим, x - это список массивов.

a <- array(1,c(2,3,4));
b <- array(2,c(2,3,4));
c <- array(3,c(2,3,4));

x <- list(a=a,b=b,c=c)

Мой желаемый вывод - следующий массив:

   array(var(c(1,2,3)),c(2,3,4))

Это тихо, как на следующей странице, но изменитесумма к дисперсии.

Ссылка: Суммирование списка массивов


Редактировать для комментариев @ akrun

Спасибо @akrun,Его ответ следующий:

    apply(
     array(unlist(x),append( dim(x[[1]]), length(x) )  ),
     1:length(dim(x[[1]])),
     var
)

, где x - следующий список массивов:

a <- array(1,c(2,3,4));
b <- array(2,c(2,3,4));
c <- array(3,c(2,3,4));
d <- array(4,c(2,3,4));
x <- list(a=a,b=b,c=c,d=d)

1 Ответ

0 голосов
/ 15 февраля 2019

Один из вариантов: unlist list, создайте array и используйте apply, чтобы получить var iance

apply(array(unlist(x), c(2, 3, 4, 3)), 1:3, var)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...