J'ai deux matrices creuses, m1
et m2
:Dans R, lors de l'utilisation de lignes nommées, une colonne à matrice clairsemée peut-elle être ajoutée (concaténée) à une autre matrice clairsemée?
> 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 .
>
et je veux les cbind()
pour faire une matrice creuse comme:
[,1] [,2]
a . 5
b 4 .
d . .
cependant cbind()
ignore les lignes nommées:
> cbind(m1[,1],m2[,1])
[,1] [,2]
b 4 5
d 0 0
est-il un moyen de le faire sans une boucle de force brute?
Cela fonctionnerait simplement si vous correspondiez à des positions et des noms: m1 <- Matrice (données = 0, nrow = 4, ncol = 1, sparse = VRAI, dimnames = liste (c ("a", "b" , "c", "d"), NULL)) m2 <- Matrice (données = 0, nrow = 4, ncol = 1, vide = VRAI, dimnames = liste (c ("a", "b", " c "," d "), NULL)) m1 [" b ", 1] <- 4 m2 [" a ", 1] <- 5 cbind (m1 [, 1], m2 [, 1]) mais je comprends que ce n'est pas une réponse à votre question .. – momobo
Merci, je pourrais retravailler mon code pour gérer ça. – ayman