Is it what you want ?

> x <- matrix(c(1:3, NA, NA, 4, 1:2, NA), 3, 3)
> x
     [,1] [,2] [,3]
[1,]    1   NA    1
[2,]    2   NA    2
[3,]    3    4   NA
> x[is.na(x)] <- 0
> x
     [,1] [,2] [,3]
[1,]    1    0    1
[2,]    2    0    2
[3,]    3    4    0


2008/7/28 Denise Xifara <dionysia-kiara.xifaras@st-hildas.ox.ac.uk>

>  Dear All and Mark,
>
> Given a dataset that I have called dat, I was hoping to speed up the
> following loop:
>
> for(i in 1:835353){
> for(j in 1:86){
> if  (is.na(dat[i,j])==TRUE){dat[i,j]<-0 }}}
> Actually I am also having a memory problem.  I get the following:
>
> Error: cannot allocate vector of size 3.2 Mb
> In addition: Warning messages:
> 1: In dat[i, j] <- 0 :
>  Reached total allocation of 1535Mb: see help(memory.size)
> 2: In dat[i, j] <- 0 :
>  Reached total allocation of 1535Mb: see help(memory.size)
> 3: In dat[i, j] <- 0 :
>  Reached total allocation of 1535Mb: see help(memory.size)
> 4: In dat[i, j] <- 0 :
>  Reached total allocation of 1535Mb: see help(memory.size)
>
> If I try and apply the loop just to a particular column, rather than the
> whole dataset, so that I dont have the memory problem, ie
>
> for(i in 1:835353){
> if  (is.na(dat[i,4])==TRUE){dat[i,4]<-0 }}
>
> it takes ridiculously long to process, so I was hoping that there would be
> a
> quicker way to do this.
>
> Thank you all very much for the help,
> Denise
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
>

	[[alternative HTML version deleted]]

