[R] extracting elements from a list in vectorized form

jgarcia at ija.csic.es jgarcia at ija.csic.es
Tue Jul 1 09:57:43 CEST 2008


Perfect!!
Thanks a lot!
Javier
-------
> jgarcia at ija.csic.es wrote:
>> Hi;
>> It seems to me that has probably been asked in the past. But I cannot
>> find
>> the track.
>>
>> I usually need to extract elements from a list and contruct vector from
>> them; e.g., to create a table. Perhaps there is a way to directly
>> extract
>> them without looping?
>> Simple example:
>>
>>
>>> S.lst
>>>
>> $sublist.1
>> $sublist.1$age
>> [1] 24.58719
>>
>> $sublist.1$weight
>> [1] 60.82861
>>
>>
>> $sublist.2
>> $sublist.2$age
>> [1] 32.39551
>>
>> $sublist.2$weight
>> [1] 59.46347
>>
>> etc.
>>
>> I would like to extract, e.g.,  directly all weights element from each
>> sublist without looping. I  know it is possible to do this as:
>>
>> unlist(S.lst)[paste("sublist.",1:length(S.lst),".weight",sep="")]
>>
>> but there is not some short-cut? something like
>>
>> S.lst[[1:length(S.lst)]]$weight ?
>>
>>
> I think this should do it:
>
> sapply(S.lst, "[[", "weight")
>
> --
>    O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
>   c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
>  (*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
> ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)              FAX: (+45) 35327907
>
>



More information about the R-help mailing list