2010-11-30 22 views
43

Lorsque vous travaillez avec des matrices dans R, vous pouvez les mettre côte à côte ou les empiler les unes sur les autres en utilisant respectivement cbind et rbind. Quelle est la fonction équivalente pour empiler des matrices ou des tableaux dans d'autres dimensions?Quel est l'équivalent multidimensionnel de R de rbind et de cbind?

Par exemple, ce qui suit crée une paire de matrices 2x2, chacun ayant 4 éléments:

x = cbind(1:2,3:4) 
y = cbind(5:6,7:8) 

Quel est le code pour les combiner dans un tableau de 2x2x2 avec 8 éléments?

Répondre

47

Voir le package abind. Si vous les voulez lier sur une 3ème dimension, procédez comme suit:

library(abind) 
abind(x, y, along = 3) 

Voir ?abind

En outre, abind donne beaucoup plus de commodité, mais pour simplement vous lier pouvez simplement manipuler les valeurs directement, sur la base la commande par défaut:

array(c(x, y), dim = c(2, 2, 2))