On Apr 25, 2013, at 7:53 AM, Bert Gunter wrote: > Well, what you really want to do is convert the list to a matrix, and > it can be done directly and considerably faster than with the > (implicit) looping of sapply: > > f1 <- function(l)sapply(l,"[",1) > f2 <- function(l)matrix(unlist(l),nr=2) > l <- > strsplit(paste(sample(LETTERS,1e6,rep=TRUE),sample(1:10,1e6,rep=TRUE),sep="+"),"+",fix=TRUE)
Consider this alternative: L = list( c("A1","B1"), c("A2","B2"), c("A3","B3") ) simplify2array(L) [,1] [,2] [,3] [1,] "A1" "A2" "A3" [2,] "B1" "B2" "B3" -- David. > > ## Then you get these results: > >> system.time(x1 <- f1(l)) > user system elapsed > 1.92 0.01 1.95 >> system.time(x2 <- f2(l)) > user system elapsed > 0.06 0.02 0.08 >> system.time(x2 <- f2(l)[1,]) > user system elapsed > 0.1 0.0 0.1 >> identical(x1,x2) > [1] TRUE > > > Cheers, > Bert > > > > > > > On Thu, Apr 25, 2013 at 3:32 AM, Ted Harding <ted.hard...@wlandres.net> wrote: >> Thanks, Jorge, that seems to work beautifully! >> (Now to try to understand why ... but that's for later). >> Ted. >> >> On 25-Apr-2013 10:21:29 Jorge I Velez wrote: >>> Dear Dr. Harding, >>> >>> Try >>> >>> sapply(L, "[", 1) >>> sapply(L, "[", 2) >>> >>> HTH, >>> Jorge.- >>> >>> >>> >>> On Thu, Apr 25, 2013 at 8:16 PM, Ted Harding >>> <ted.hard...@wlandres.net>wrote: >>> >>>> Greetings! >>>> For some reason I am not managing to work out how to do this >>>> (in principle) simple task! >>>> >>>> As a result of applying strsplit() to a vector of character strings, >>>> I have a long list L (N elements), where each element is a vector >>>> of two character strings, like: >>>> >>>> L[1] = c("A1","B1") >>>> L[2] = c("A2","B2") >>>> L[3] = c("A3","B3") >>>> [etc.] >>>> >>>>> From L, I wish to obtain (as directly as possible, e.g. avoiding >>>> a loop) two vectors each of length N where one contains the strings >>>> that are first in the pair, and the other contains the strings >>>> which are second, i.e. from L (as above) I would want to extract: >>>> >>>> V1 = c("A1","A2","A3",...) >>>> V2 = c("B1","B2","B3",...) >>>> >>>> Suggestions? >>>> >>>> With thanks, >>>> Ted. >>>> >>>> ------------------------------------------------- >>>> E-Mail: (Ted Harding) <ted.hard...@wlandres.net> >>>> Date: 25-Apr-2013 Time: 11:16:46 >>>> This message was sent by XFMail >>>> >>>> ______________________________________________ >>>> 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. >>>> >> >> ------------------------------------------------- >> E-Mail: (Ted Harding) <ted.hard...@wlandres.net> >> Date: 25-Apr-2013 Time: 11:31:57 >> This message was sent by XFMail >> >> ______________________________________________ >> 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. > > > > -- > > Bert Gunter > Genentech Nonclinical Biostatistics > > Internal Contact Info: > Phone: 467-7374 > Website: > http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm > > ______________________________________________ > 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. David Winsemius 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.