you want to replace all rows where the 4th column is zero.. (data[ , 4 ] == 0) and you want to perform that replacement in the first column..
so try data[ data[ , 4 ] == 0 , 1 ] <- NA On Sat, Mar 2, 2013 at 5:26 AM, Camilo Mora <cm...@dal.ca> wrote: > 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/ <http://www.soc.hawaii.edu/mora/> > > ______________________________**________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/**listinfo/r-help<https://stat.ethz.ch/mailman/listinfo/r-help> > PLEASE do read the posting guide http://www.R-project.org/** > posting-guide.html <http://www.R-project.org/posting-guide.html> > and provide commented, minimal, self-contained, reproducible code. > [[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.