matrix - Elementwise median of list of matrices in R -
given list of matrices:
temp <- list(matrix(c(1,8,3,400), 2), matrix(c(5,2,300,14),2), matrix(c(100,200,12,4),2) ) temp # [[1]] # [,1] [,2] # [1,] 1 3 # [2,] 8 400 # # [[2]] # [,1] [,2] # [1,] 5 300 # [2,] 2 14 # # [[3]] # [,1] [,2] # [1,] 100 12 # [2,] 200 4
i want element-wise median of matrices:
[,1] [,2] [1,] 5 12 [2,] 8 14
can done without explicit loops?
first, put array:
library(abind) <- do.call(abind, c(temp, list(along=3)))
then use apply
:
apply(a, 1:2, median) # [,1] [,2] # [1,] 5 12 # [2,] 8 14
as @richardscriven suggests, can build a
without abind package:
a <- array(unlist(temp), c(2, 2, 3)) # or <- array(unlist(temp), c(dim(temp[[1]]), length(temp)))
Comments
Post a Comment