[R] Removing objects from a list based on nrow

Tim Clark mudiver1200 at yahoo.com
Sun Nov 29 10:40:30 CET 2009


Linlin,

Thanks!  That works great!

Tim


Tim Clark
Department of Zoology 
University of Hawaii


--- On Sat, 11/28/09, Linlin Yan <yanlinlin82 at gmail.com> wrote:

> From: Linlin Yan <yanlinlin82 at gmail.com>
> Subject: Re: [R] Removing objects from a list based on nrow
> To: "Tim Clark" <mudiver1200 at yahoo.com>
> Cc: r-help at r-project.org
> Date: Saturday, November 28, 2009, 10:43 PM
> Try these:
> sapply(lst, nrow) # get row numbers
> which(sapply(lst, nrow) < 3) # get the index of rows
> which has less than 3 rows
> lst <- lst[-which(sapply(lst, nrow) < 3)] # remove
> the rows from the list
> 
> On Sun, Nov 29, 2009 at 4:36 PM, Tim Clark <mudiver1200 at yahoo.com>
> wrote:
> > Dear List,
> >
> > I have a list containing data frames of various
> numbers of rows.  I need to remove any data frame that has
> less than 3 rows.  For example:
> >
> >
> df1<-data.frame(letter=c("A","B","C","D","E"),number=c(1,2,3,4,5))
> > df2<-data.frame(letter=c("A","B"),number=c(1,2))
> >
> df3<-data.frame(letter=c("A","B","C","D","E"),number=c(1,2,3,4,5))
> >
> df4<-data.frame(letter=c("A","B","C","D","E"),number=c(1,2,3,4,5))
> >
> > lst<-list(df1,df2,df3,df4)
> >
> > How can I determine that the second object (df2) has
> less than 3 rows and remove it from the list?
> >
> > Thanks!
> >
> > Tim
> >
> >
> >
> >
> > Tim Clark
> > Department of Zoology
> > University of Hawaii
> >
> > ______________________________________________
> > 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