Your criteria did not make sense since in both cases pattern == 1, so I chose to set to NA if pattern == 1
> test <- data.frame(n = c(1,2,3,4,5), v = c(6,5,7,5,3), pattern = + c(1,1,NA,1,NA)) > test n v pattern 1 1 6 1 2 2 5 1 3 3 7 NA 4 4 5 1 5 5 3 NA > # set v to NA when pattern = 1 > test$v[!is.na(test$pattern) & (test$pattern == 1)] <- NA > test n v pattern 1 1 NA 1 2 2 NA 1 3 3 7 NA 4 4 NA 1 5 5 3 NA > > On Thu, Mar 1, 2012 at 11:11 AM, mails <mails00...@gmail.com> wrote: > > Hello, > > > consider the following data.frame: > > test <- data.frame(n = c(1,2,3,4,5), v = c(6,5,7,5,3), pattern = > c(1,1,NA,1,NA)) > > > test > n v pattern > 1 1 6 1 > 2 2 5 1 > 3 3 7 NA > 4 4 5 1 > 5 5 3 NA > > > I tried to use apply and the adply function to set v to NA where pattern = > 1 > and v to v where pattern = 1 > > > So basically the result should look like this: > > test > n v pattern > 1 1 NA 1 > 2 2 NA 1 > 3 3 7 NA > 4 4 NA 1 > 5 5 3 NA > > So far, I solved it by creating subsets and using merge but it turns out > to > be super slow. Is there a way to do that > with the apply function? > > Any help/hint is appreciated > > Thanks > > > -- > View this message in context: > http://r.789695.n4.nabble.com/Delete-rows-from-data-frame-matching-a-certain-criteria-tp4435414p4435414.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > 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. -- Jim Holtman Data Munger Guru What is the problem that you are trying to solve? Tell me what you want to do, not how you want to do it. ______________________________________________ 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.