[R] Delete rows from data.frame matching a certain criteria
Ista Zahn
istazahn at gmail.com
Thu Mar 1 19:00:54 CET 2012
Hi,
On Mar 1, 2012, at 12:38 PM, Sarah Goslee wrote:
> Hi,
>
> On Thu, Mar 1, 2012 at 11:11 AM, mails <mails00000 at 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 at 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.
More information about the R-help
mailing list