在R中,当使用命名行时,是否可以将稀疏矩阵列添加(连接)到另一个稀疏矩阵?

我有两个稀疏矩阵,m1和m2:

> m1 <- Matrix(data=0,nrow=2, ncol=1, sparse=TRUE, dimnames=list(c("b","d"),NULL))
> m2 <- Matrix(data=0,nrow=2, ncol=1, sparse=TRUE, dimnames=list(c("a","b"),NULL))
> m1["b",1]<- 4
> m2["a",1]<- 5
> m1
2 x 1 sparse Matrix of class "dgCMatrix"

b 4
d .
> m2
2 x 1 sparse Matrix of class "dgCMatrix"

a 5
b .
>

我想cbind()他们做一个稀疏矩阵,如:

  [,1] [,2] 
a    .    5
b    4    .
d    .    .

但是cbind()会忽略命名的行:

> cbind(m1[,1],m2[,1])
  [,1] [,2]
b    4    5
d    0    0

有没有办法在没有暴力循环的情况下做到这一点?

最佳答案 您应该将问题发送给Matrix Maechler,他是Matrix软件包的大部分作者.有一个cBind函数,但它目前还没有识别rownames,只有维度,至少就我所知(即使将deparse.level参数增加到2).

点赞