On Sun, 22 Aug 2010, david h shanabrook wrote:

I am working with a large sparse matrix trying replace all 1 values with 0.  
The normal method doesn't work.  Here is a small example:

x <- Matrix(0,nrow=10,ncol=10,sparse=TRUE)
x[,1] <- 1:2
x
10 x 10 sparse Matrix of class "dgCMatrix"

[1,] 1 . . . . . . . . .
[2,] 2 . . . . . . . . .
[3,] 1 . . . . . . . . .
[4,] 2 . . . . . . . . .
[5,] 1 . . . . . . . . .
[6,] 2 . . . . . . . . .
[7,] 1 . . . . . . . . .
[8,] 2 . . . . . . . . .
[9,] 1 . . . . . . . . .
[10,] 2 . . . . . . . . .
x[x==1] <- 0
Error in .local(x, i, j, ..., value) :
not-yet-implemented 'Matrix[<-' method


Suggestions?  Any solution must be memory efficient as my sparse matrix is 
large.

Looks like

        attr( x, "x" )[ attr( x, "x" ) == 1 ] <- 0

should do it, but does not reduce the density of the matrix. In order to get that you'll need to do

        x <- drop0(x)


HTH,

Chuck


dhs
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Charles C. Berry                            (858) 534-2098
                                            Dept of Family/Preventive Medicine
E mailto:cbe...@tajo.ucsd.edu               UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to