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

Rui Barradas ruipbarradas at sapo.pt
Sat Mar 2 12:56:14 CET 2013


Hello,

Try

# for columns a.b it's 1:2, not 1:3
data[data[,4] == 0, 1:3] <- NA  # columns a, b and c


Hope this helps,

Rui Barradas

Em 02-03-2013 10:26, Camilo Mora escreveu:
> 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/
>
> ______________________________________________
> R-help at 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.



More information about the R-help mailing list