Этот вопрос является преемником Применение функции для вложенного списка . Принимая во внимание, что он имеет дело со списком списков векторов, этот касается списка списков матриц.
Вход выглядит как
set.seed(42L)
input <- replicate(3, replicate(4, matrix(rnorm(25), nrow=5), simplify=FALSE), simplify=FALSE)
Я хочу вычислить среднее значение соответствующие записи из внешнего списка . Конечно, я могу использовать цикл for, но должен быть другой способ, который быстрее, лаконичнее и понятнее?
result <- replicate(4, matrix(0, nrow=5, ncol=5), simplify=FALSE)
for (i in 1:3) {
for (j in 1:4) {
for (k in 1:5) {
for (l in 1:5) {
result[[j]][k, l] <- result[[j]][k, l] + input[[i]][[j]][k, l]
}
}
}
}
result <- lapply(result, function(x) x / 3)