Estoy tratando de transformar una matriz 3D en una matriz. Quiero que la tercera dimensión de la matriz forme la primera fila en la matriz, y esta tercera dimensión debe leerse por fila (es decir, la fila 1, luego la fila 2, etc. de la dimensión 3 debe constituir la primera fila del matriz). He dado un ejemplo a continuación, donde la matriz tiene dimensiones de 4, 3 y 5, y la matriz resultante tiene 5 filas y 12 columnas. Tengo una solución a continuación que logra lo que quiero, pero parece muy engorrosa para arreglos grandes (primero crea vectores a partir de los elementos de la matriz (por filas) y luego los combina para formar la matriz). ¿Hay una manera más elegante de hacer esto? Gracias de antemano por cualquier sugerencia.Transformar una matriz 3D en una matriz en R
dat <- array(rnorm(60), dim=c(4, 3, 5))
results <- list(1:5)
for (i in 1:5) {
vec <- c(t(dat[, , i]))
results[[i]] <- vec
}
datNew <- rbind(results[[1]], results[[2]], results[[3]], results[[4]], results[[5]])
Usted debe cambiar la formulación. Probablemente quiera decir con "primer elemento" de una matriz, la matriz impresa cuando se imprime la matriz. Esas matrices son los elementos de la dimensión _3rd_ de la matriz. De su ejemplo, veo que solo desea aplanar las dos primeras dimensiones. Mi respuesta a continuación te da lo que quieres. – VitoshKa
Gracias VitoshKa por señalar eso - Edité la pregunta. – Steve