[R] Delete observations with a frequency < x

Phil Spector spector at stat.berkeley.edu
Fri Dec 10 01:37:24 CET 2010


Suppose this is your data frame:

> df = data.frame(x=c(1,1,1,2,2,2),y=c('a','b','c','a','b','d'))
> df
   x y
1 1 a
2 1 b
3 1 c
4 2 a
5 2 b
6 2 d

> df[!table(df$y)[df$y] < 2,]
   x y
1 1 a
2 1 b
4 2 a
5 2 b

Note that this will only work properly if y is a factor or character
variable.  If y was numeric, you would need

df[!table(df$y)[as.character(df$y)]

 					- Phil Spector
 					 Statistical Computing Facility
 					 Department of Statistics
 					 UC Berkeley
 					 spector at stat.berkeley.edu


On Thu, 9 Dec 2010, mathijsdevaan wrote:

>
> Hi,
>
> I have two columns with data (both identifiers - it's an affiliation list)
> and I would like to delete the rows in which the observations in the second
> column have a frequency < 5 in the entire second column. Example:
>
> 1     a
> 1     b
> 1     c
> 2     a
> 2     b
> 2     d
>
> Let's say, I would like to delete the rows in which the observation in the
> second column has a frequency < 2 in the entire second column. This would
> result in:
>
> 1     a
> 1     b
> 2     a
> 2     b
>
> How can I do this? Thanks in advance!
>
> Mathijs
> -- 
> View this message in context: http://r.789695.n4.nabble.com/Delete-observations-with-a-frequency-x-tp3081226p3081226.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.
>



More information about the R-help mailing list