[R] replace zeros for NA in a column based on values of another column

Camilo Mora cmora at dal.ca
Sat Mar 2 11:26:01 CET 2013


Hi everyone,

Imagine that I have a data frame with four columns:
data<-
a       b       c       d
0       1       1       0
1       1       1       1
1       0       0       1

I want to replace the zeros in columns a:b for NA only for the rows in  
which column d are zero. So

a       b       c       d
NA      1       1       0
1       1       1       1
1       0       0       1

I am trying this:
data[,1:3][data[4] == 0] <- NA
But get this error:

Error in `[<-.data.frame`(`*tmp*`, Data[4] == 0, value = NA) :
   only logical matrix subscripts are allowed in replacement

Does anyone knows the reason of this error or is there an alternative  
to replace the values in one column based on the values of another?

Thanks,

Camilo

Camilo Mora, Ph.D.
Department of Geography, University of Hawaii
http://www.soc.hawaii.edu/mora/



More information about the R-help mailing list