Skip to content
Back to formatted view

Raw Message

Message-ID: <1360706916.81040.YahooMailNeo@web142604.mail.bf1.yahoo.com>
Date: 2013-02-12T22:08:36Z
From: arun
Subject: grabbing from elements of a list without a loop
In-Reply-To: <CAN2xGJbjv0tYWtqTsxjGJLLU-pmFwKm3QR2z0CtkTr6WHRkkiQ@mail.gmail.com>

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.