[R] Delete rows from data.frame matching a certain criteria
Sarah Goslee
sarah.goslee at gmail.com
Thu Mar 1 18:38:48 CET 2012
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))
>
>> test
> n v pattern
> 1 1 6 1
> 2 2 5 1
> 3 3 7 NA
> 4 4 5 1
> 5 5 3 NA
>
Thanks for the reproducible example.
> I tried to use apply and the adply function to set v to NA where pattern = 1
> and v to v where pattern = 1
Presumably that should be set v to NA where pattern == 1 and v to v where
pattern != 1
>
> 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
--
Sarah Goslee
http://www.functionaldiversity.org
More information about the R-help
mailing list