重置dgCMatrix';s值

重置dgCMatrix';s值,r,R,在R中,我想将dgCMatrix的非零值设置为向量 例如: 这是一个DGC矩阵: M 3 x 4 sparse Matrix of class "dgCMatrix" [1,] . 1 . 1 [2,] . . 1 . [3,] . . 1 . 这是一个向量: a <- c(1,2,3,4) 谢谢 这应该是非常有效的: library(Matrix) M <- Matrix(c(0,0,0,1,0,0,0,1,1,1,0,0), nc=4) ## Recreates your

在R中,我想将dgCMatrix的非零值设置为向量

例如:

这是一个DGC矩阵:

M
3 x 4 sparse Matrix of class "dgCMatrix"

[1,] . 1 . 1
[2,] . . 1 .
[3,] . . 1 .
这是一个向量:

a <- c(1,2,3,4)

谢谢

这应该是非常有效的:

library(Matrix)
M <- Matrix(c(0,0,0,1,0,0,0,1,1,1,0,0), nc=4) ## Recreates your dgCMatrix
a <- 1:4

M %*% Diagonal(x=a)
# 3 x 4 sparse Matrix of class "dgCMatrix"
#             
# [1,] . 2 . 4
# [2,] . . 3 .
# [3,] . . 3 .
library(Matrix)
M <- Matrix(c(0,0,0,1,0,0,0,1,1,1,0,0), nc=4) ## Recreates your dgCMatrix
a <- 1:4

M %*% Diagonal(x=a)
# 3 x 4 sparse Matrix of class "dgCMatrix"
#             
# [1,] . 2 . 4
# [2,] . . 3 .
# [3,] . . 3 .
M <- M * 11:14  ## Alter M to test the following code 

as(M>0 | M<0, "dgCMatrix") %*% Diagonal(x=a)

as(!M==0, "dgCMatrix") %*% Diagonal(x=a)