seguidores saber promocionarse para momento los impulsar hashtags espaƱol cuenta como analisis r

saber - Elemento sabio significa sobre lista de matrices



ig analytics (2)

Aquí hay una alternativa que debería ser bastante rápida, ya que estamos trabajando con funciones básicas diseñadas para trabajar con matrices. Simplemente tomamos su lista y usamos la array para convertirla en una matriz 3D, luego usamos apply o simplemente 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

O puede usar rowMeans que es más rápido, especificando que desea obtener la media en más de 2 dimensiones ...

# 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

Esta pregunta ya tiene una respuesta aquí:

Supongamos que tienes lista de matrices. ¿Cuál es la forma más conveniente de calcular la matriz media en un elemento por elemento básico? Supongamos que tenemos una lista de matrices:

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

Así que la salida deseada debe ser:

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


Puedes usar:

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

De acuerdo con los comentarios, quiere que se implemente tanto el mean como el sd en una lista de matrices, y las formas anteriores no funcionarán sin problemas para el sd . Intenta esto en su lugar:

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