Transformer un tableau 3D dans une matrice en R

Je suis en train de transformer un tableau 3D dans une matrice. Je veux la troisième dimension de la matrice pour former la première ligne de la matrice, et cette dimension devrait être lu par ligne (c'est à dire, la ligne 1, puis ligne 2, etc...) de dimension 3, la première ligne de la matrice). J'ai donné l'exemple ci-dessous, où la matrice a des dimensions de 4, 3, et 5, et la matrice obtenue a 5 lignes et 12 colonnes. J'ai une solution ci-dessous qui permet d'obtenir ce que je veux, mais il semble très lourd pour les grands tableaux (il crée d'abord des vecteurs à partir des éléments de la matrice (en ligne), puis rbinds ces pour former la matrice). Est-il une façon plus élégante de le faire? Merci d'avance pour toutes les suggestions.

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]] )  
  • Vous devez changer la formulation. Tu veux sans doute dire par "premier élément" d'une matrice la matrice imprimé lorsque le tableau est imprimé. Ces matrices sont les éléments de la 3ème dimension de la matrice. À partir de votre exemple, je vois que vous voulez juste pour aplatir les deux premières dimensions. Ma réponse ci-dessous vous donne ce que vous voulez.
  • Grâce VitoshKa de remarquer que - j'ai édité la question.
InformationsquelleAutor Steve | 2010-10-26