[R] Delete rows from data.frame matching a certain criteria
Sarah Goslee
sarah.goslee at gmail.com
Thu Mar 1 19:02:53 CET 2012
You're all correct: I copied in the wrong thing. My apologies!
On Thu, Mar 1, 2012 at 1:00 PM, Ista Zahn <istazahn at 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 <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
>
>>
More information about the R-help
mailing list