В R, при использовании именованных строк, может ли столбец разреженной матрицы быть добавлен (сцеплен) к другой разреженной матрице? - PullRequest
4 голосов
/ 20 марта 2010

У меня есть две разреженные матрицы, 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

Есть ли способ сделать это без грубой петли силы?

1 Ответ

2 голосов
/ 21 марта 2010

Вы должны отправить вопрос Мартину Мачлеру, автору большей части пакета Matrix. Существует функция cBind, но в настоящий момент она не распознает имена строк, только измерения, по крайней мере, насколько я могу судить (даже при увеличении аргумента deparse.level до 2).

...