web-dev-qa-db-fra.com

Matrices de concaténation en R

Comment puis-je concaténer des matrices de mêmes colonnes mais d'un nombre différent de lignes? Par exemple, je veux concaténer un ( dim(a) = 15 7000 ) et B (dim(b) = 16 7000) et je veux que le résultat soit une matrice de 31 lignes par 7000 colonnes. Puis-je faire cela pour des matrices de différentes lignes et colonnes.? Disons que je veux combiner une matrice de 15 lignes et 7000 colonnes avec une autre de 16 lignes et 7500 colonnes. Puis-je créer un ensemble de données avec cela?

42
Dombey

On dirait que vous recherchez rbind:

> a<-matrix(nrow=10,ncol=5)
> b<-matrix(nrow=20,ncol=5)
> dim(rbind(a,b))
[1] 30  5

De même, cbind empile les matrices horizontalement.

Je ne suis pas tout à fait sûr de ce que vous entendez par la dernière question ("Puis-je le faire pour des matrices de différentes lignes et colonnes.?")

53
NPE

cbindX du package gdata combine plusieurs colonnes de différentes longueurs de colonne et de ligne . Consultez la page ici:

http://hosho.ees.hokudai.ac.jp/~kubo/Rdoc/library/gdata/html/cbindX.html

Il faut plusieurs matrices séparées par des virgules et data.frames en entrée :) Vous avez juste besoin de

install.packages("gdata", dependencies=TRUE)

et alors

library(gdata)
concat_data <- cbindX(df1, df2, df3) # or cbindX(matrix1, matrix2, matrix3, matrix4)
6
gawbul