Элементарно означает над списком матриц

Предположим, у вас есть список матриц. Каков наиболее удобный способ вычисления средней матрицы элемента по элементам? Предположим, что у нас есть список матриц:

> A  A [,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8 [3,] 3 6 9 > B  B [,1] [,2] [,3] [1,] 2 5 8 [2,] 3 6 9 [3,] 4 7 10 > my.list <- list(A, B) 

Таким образом, желаемый результат должен быть:

  [,1] [,2] [,3] [1,] 1.5 4.5 7.5 [2,] 2.5 5.5 8.5 [3,] 3.5 6.5 9.5 

Вы можете использовать:

 Reduce("+", my.list) / length(my.list) 

Согласно комментариям, вы хотите, чтобы как mean и sd реализовывались в списке матриц, и вышеуказанные способы не будут работать гладко для sd . Попробуйте это вместо этого:

 apply(simplify2array(my.list), 1:2, mean) apply(simplify2array(my.list), 1:2, sd) 

Вот альтернатива, которая должна быть довольно быстрой, поскольку мы работаем с базовыми функциями, предназначенными для работы с matrixми. Мы просто берем ваш список и используем array чтобы превратить его в трехмерный массив, либо использовать apply либо просто rowMeans

 # Make some data, a list of 3 matrices of 4x4 ll <- replicate( 3 , matrix( sample(5,16,repl=TRUE) , 4 ) , simplify = FALSE ) # Make a 3D array from list of matrices arr <- array( unlist(ll) , c(4,4,3) ) # Get mean of third dimension apply( arr , 1:2 , mean ) # [,1] [,2] [,3] [,4] #[1,] 3.000000 3.666667 3.000000 1.666667 #[2,] 2.666667 3.666667 3.333333 3.666667 #[3,] 4.666667 2.000000 1.666667 3.666667 #[4,] 1.333333 4.333333 3.666667 3.000000 

Или вы можете использовать rowMeans, который быстрее, указав, что вы хотите получить среднее значение в 2 измерениях ...

 # Get mean of third dimension rowMeans( arr , dims = 2 ) # [,1] [,2] [,3] [,4] #[1,] 3.000000 3.666667 3.000000 1.666667 #[2,] 2.666667 3.666667 3.333333 3.666667 #[3,] 4.666667 2.000000 1.666667 3.666667 #[4,] 1.333333 4.333333 3.666667 3.000000 
  • Добавить столбец «ранг» в кадр данных
  • Есть ли способ `source ()` и продолжить после ошибки?
  • Добавление текста в таблицу grid.table
  • poly () в lm (): разница между исходным и ортогональным
  • Извлечение элементов, общих во всех группах столбцов
  • Преобразование серийного номера excel DateTime в R DateTime
  • Заменить содержимое столбца факторов в R-файле
  • Глобальные и локальные переменные в R
  • Поиск локальных максимумов и минимумов
  • Отбор проб в R из вектора различной длины
  • Процент% в%
  • Давайте будем гением компьютера.