Objetivo: a partir de una lista de vectores de igual longitud, cree una matriz donde cada vector se convierta en una fila.
Ejemplo:
> a <- list()
> for (i in 1:10) a[[i]] <- c(i,1:5)
> a
[[1]]
[1] 1 1 2 3 4 5
[[2]]
[1] 2 1 2 3 4 5
[[3]]
[1] 3 1 2 3 4 5
[[4]]
[1] 4 1 2 3 4 5
[[5]]
[1] 5 1 2 3 4 5
[[6]]
[1] 6 1 2 3 4 5
[[7]]
[1] 7 1 2 3 4 5
[[8]]
[1] 8 1 2 3 4 5
[[9]]
[1] 9 1 2 3 4 5
[[10]]
[1] 10 1 2 3 4 5
Quiero:
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 1 2 3 4 5
[2,] 2 1 2 3 4 5
[3,] 3 1 2 3 4 5
[4,] 4 1 2 3 4 5
[5,] 5 1 2 3 4 5
[6,] 6 1 2 3 4 5
[7,] 7 1 2 3 4 5
[8,] 8 1 2 3 4 5
[9,] 9 1 2 3 4 5
[10,] 10 1 2 3 4 5

simplify2arrayes una función básica bastante intuitiva. Sin embargo, dado que el valor predeterminado de R es completar primero los datos por columnas, deberá transponer la salida. (sapplyusossimplify2array, como se documenta enhelp(sapply).)fuente
No es sencillo, pero funciona:
fuente
rjsonresultados,colMeansfunciona solo para este método! ¡Gracias!La
matrixfunción incorporada tiene la buena opción de ingresar datosbyrow. Combine eso con ununlisten su lista de fuentes le dará una matriz. También necesitamos especificar el número de filas para que pueda dividir los datos no listados. Es decir:fuente
t( matrix( unlist(a), ncol=length(a) ) ).donde 'a' es una lista. Funcionaría para un tamaño de fila desigual
fuente
fuente
NAvalores al final.