Конкатенирующие матрицы в R - PullRequest
       15

Конкатенирующие матрицы в R

42 голосов
/ 06 сентября 2011

Как я могу объединить матрицы из тех же столбцов, но с разным количеством строк?Например, я хочу объединить ( dim(a) = 15 7000 ) и b (dim(b) = 16 7000), и я хочу, чтобы результат представлял собой матрицу из 31 строк по 7000 столбцам.Можно ли это сделать для матриц разных строк и столбцов.?Скажем, я хочу объединить матрицу из 15 строк и 7000 столбцов с другой из 16 строк и 7500 столбцов.Могу ли я создать один набор данных с этим?

Ответы [ 2 ]

52 голосов
/ 06 сентября 2011

Похоже, вы ищете rbind:

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

Аналогично, cbind размещает матрицы горизонтально.

Я не совсем уверен, что вы подразумеваете под последним вопросом («Могу ли я сделать это для матриц разных строк и столбцов .?")

6 голосов
/ 29 февраля 2012

cbindX из пакета gdata объединяет несколько столбцов различной длины столбца и строки. Проверьте страницу здесь:

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

Он принимает несколько разделенных запятыми матриц и data.frames в качестве входных данных :) Вам просто нужно

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

, а затем

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