将两个Matrix组合在一起,具有不同的行数

时间:2014-03-26 09:42:24

标签: r

我想结合两个不同行数的矩阵:

k<-c(11,21,31,4,5,6,7,8,9)
k<-as.matrix(k)
m<-c(10,20,30,4,5,6)
m<-as.matrix(m)

我正在使用此命令,但对我来说无法正常工作:

j<-merge(m,k,all=TRUE)

我该怎么做才能完成这项工作

修改

我想有这样的事情:

   [,1]  [,2]
[1,] 11    10
[2,] 21    20 
[3,] 31    30
[4,] 4     4
[5,] 5     5
[6,] 6     6
[7,] 7     NA
[8,] 8     NA
[9,] 9     NA

3 个答案:

答案 0 :(得分:3)

假设您想合并m和k colwise ...

library(zoo)

my_k <- zoo(k)
my_m <- zoo(m)

j <- as.matrix(merge(my_m, my_k))

答案 1 :(得分:2)

如果只有两个向量,可能最简单的是使它们具有相同的长度

mlen <- max(length(m), length(k))
length(m) <- length(k) <- mlen
cbind(m,k)

将提供所需的结果。

答案 2 :(得分:1)

另一种方式

k <- as.data.frame(matrix(c(1:9, 11,21,31,4,5,6,7,8,9), 9,2))
m <- as.data.frame(matrix(c(1:6, 10,20,30,4,5,6), 6, 2))
j <- as.matrix(merge(k,m, by = "V1", all.x = T)[, -1])