Hi my favourite would be
test$v[which(test$pattern==1)]<-NA Regards Petr > Hi, > > On Mar 1, 2012, at 12:38 PM, Sarah Goslee wrote: > > > Hi, > > > > 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)) > >> > > < snip > > > >> 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? > > > > Far too much work. What about: > > > >> test$v <- ifelse(test$pattern == 1, NA, v) > >> test > > n v pattern > > 1 1 NA 1 > > 2 2 NA 1 > > 3 3 NA NA > > 4 4 NA 1 > > 5 5 NA NA > > Actually that doesn't work because of those pesky missing values. You need > > test <- transform(test, v = ifelse(pattern == 1 & !is.na(pattern), NA, v)) > > Best, > Ista > > > > > > > -- > > Sarah Goslee > > http://www.functionaldiversity.org > > > > ______________________________________________ > > 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. > > ______________________________________________ > 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. ______________________________________________ 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.