Re: [R] extracting elements from a list in vectorized form

2008-07-01 Thread Peter Dalgaard

[EMAIL PROTECTED] 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
~~ - ([EMAIL PROTECTED])  FAX: (+45) 35327907

__
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.


Re: [R] extracting elements from a list in vectorized form

2008-07-01 Thread jgarcia
Perfect!!
Thanks a lot!
Javier
---
 [EMAIL PROTECTED] 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
 ~~ - ([EMAIL PROTECTED])  FAX: (+45) 35327907



__
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.