# R Sessions 33: Select (nested) observations with equal number of occurences

**Curving Normality » R-Project**, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Recently, I was contacted with an question about R code. A befriended researcher was working with nested data, which was unbalanced. He was working with data in a ‘long’ format: all observations nested within the same group had the same identification number. But, the number of observations in each of the groups differed (hence: unbalanced data).

He asked me for a piece of code that creates a subset of the data that *is* balanced, i.e. all observations that are nested within equally sized groups. Or, as an alternative, all observations nested within groups with at least a minimum number of observations.

I solved it the quick and dirty way, and the solution involves creating additional variables, a new data.frame, and merging. It sure can be done much prettier, but it works.

So, I share it below:

id <- c("a", "b","b", "c","c","c", "d","d","d","d", "e","e","e")

y <- c(3,4,3,2,4,5,6,5,6,7,5,4,3)

df <- data.frame(id, y) # setting up original data.frame

`tab <- data.frame(id=names(table(df$id)), fre=as.vector(table(df$id))) # table of frequencies`

`df.new <- merge(df, tab, by="id") # merging frequencies-variable`

`subset(df.new, fre==3) # subsetting`

subset(df.new, fre>3)

**leave a comment**for the author, please follow the link and comment on their blog:

**Curving Normality » R-Project**.

R-bloggers.com offers

**daily e-mail updates**about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.