You're all correct: I copied in the wrong thing. My apologies! On Thu, Mar 1, 2012 at 1:00 PM, Ista Zahn <istaz...@gmail.com> wrote: > 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 > >>
______________________________________________ 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.