[R] Delete rows from data.frame matching a certain criteria

jim holtman jholtman at gmail.com
Thu Mar 1 18:47:54 CET 2012


Your criteria did not make sense since in both cases pattern == 1, so
I chose to set to NA if pattern == 1

> 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
> # set v to NA when pattern = 1
> test$v[!is.na(test$pattern) & (test$pattern == 1)] <- NA
> test
  n  v pattern
1 1 NA       1
2 2 NA       1
3 3  7      NA
4 4 NA       1
5 5  3      NA
>
>


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
>
>
> I tried to use apply and the adply function to 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?
>
> Any help/hint is appreciated
>
> Thanks
>
>
> --
> View this message in context:
> http://r.789695.n4.nabble.com/Delete-rows-from-data-frame-matching-a-certain-criteria-tp4435414p4435414.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> 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.




--
Jim Holtman
Data Munger Guru

What is the problem that you are trying to solve?
Tell me what you want to do, not how you want to do it.



More information about the R-help mailing list