[R] grabbing from elements of a list without a loop

arun smartpink111 at yahoo.com
Tue Feb 12 23:08:36 CET 2013


Hi,


 mapply(`[`,mylist,list(1,2,0),SIMPLIFY=FALSE)
#[[1]]
#  a
#1 1
#2 2

#[[2]]
 # b
#1 5
#2 6

#[[3]]
#data frame with 0 columns and 2 rows


A.K.

----- Original Message -----
From: Dimitri Liakhovitski <dimitri.liakhovitski at gmail.com>
To: r-help <r-help at r-project.org>
Cc: 
Sent: Tuesday, February 12, 2013 4:33 PM
Subject: [R] grabbing from elements of a list without a loop

Hello!

# I have a list with several data frames:
mylist<-list(data.frame(a=1:2,b=2:3),
           data.frame(a=3:4,b=5:6),data.frame(a=7:8,b=9:10))
(mylist)

# I want to grab only one specific column from each list element
neededcolumns<-c(1,2,0)  # number of the column I need from each element of
the list

# Below, I am doing it using a loop:
newlist<-NULL
for(i in 1:length(mylist) ) {
  newlist[[i]]<-mylist[[i]] [neededcolumns[i]]
}
newlist<-do.call(cbind,newlist)
(newlist)

I was wondering if there is any way to avoid the loop above and make it
faster.
In reality, I have a much longer list, each of my data frames is much
larger and I have to do it MANY-MANY times.
Thanks a lot!

Dimitri Liakhovitski
gfk.com <http://marketfusionanalytics.com/>

    [[alternative HTML version deleted]]

______________________________________________
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