HI David, I tried ur function: set.seed(1) dat1<-data.frame(ac_name=rep(c("HouseA","HouseB","HouseC","HouseD","HouseE"),times=c(8,5,4,6,3)),val=rnorm(26,15)) dat2<-within(dat1,{ac_name<-as.character(ac_name)}) dat2<-dat2[order(dat2[,1]),]
dat2[ave(dat2$ac_name,dat2$ac_name,length)<=5,] #Error in unique.default(x) : unique() applies only to vectors #With "FUN" added head(dat2[ave(dat2$ac_name,dat2$ac_name,FUN=length)<=5,]) # ac_name val #9 HouseB 15.57578 #10 HouseB 14.69461 #11 HouseB 16.51178 #12 HouseB 15.38984 #13 HouseB 14.37876 #14 HouseC 12.78530 A.K. ----- Original Message ----- From: David Winsemius <dwinsem...@comcast.net> To: fxen3k <f.seha...@gmail.com> Cc: r-help@r-project.org Sent: Wednesday, October 17, 2012 4:25 PM Subject: Re: [R] How to count rows with a condition On Oct 17, 2012, at 5:44 AM, fxen3k wrote: > Hi, > > I have a dataset called "data". There is one row called "ac_name". Some > names in this column appear very often, some less. > What I want is to filter this dataset with the following condition: > > Exclude the names, which appear more than five times. (example: House A > appears 8 times ==> exclude it; House B appears 5 times ==> include it etc.) > > In the end, I want to have the old "data" dataset excluding the rows with > the above mentioned condition and another list with all the names which have > been excluded. > data[ ave(data$ac_name, data$ac_name, length) <= 5, ] # all with 5 or fewer entries -- David Winsemius, MD Alameda, CA, USA ______________________________________________ R-help@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. ______________________________________________ R-help@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.