On Mar 1, 2012, at 1:02 PM, Sarah Goslee wrote:
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))
What about just using `is.na<-`:
is.na(test$v) <- test$pattern==1
--
David Winsemius, MD
West Hartford, CT
______________________________________________
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.