Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

Аналогично, cbind укладывает матрицы по горизонтали.

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

Ответ 2

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

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)