Well... WIth the same list,l,as before:
> system.time(x3 <- simplify2array(l)) user system elapsed 2.11 0.05 2.20 > system.time(x2 <- f2(l)) ## the matrix(unlist(...)) one user system elapsed 0.11 0.00 0.11 > identical(x2,x3) [1] TRUE So kind of a big difference if you care about efficiency... (and I can't remember all those specialized functions, anyway!) -- Bert On Thu, Apr 25, 2013 at 8:53 PM, David Winsemius <dwinsem...@comcast.net> wrote: > > 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 > -- 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.