See ?rapply

On Wed, 11 Jun 2008, Georg Otto wrote:


Hi,

I have a question about applying a function recursively through a
list. Suppose I have a list where the different elements have
different levels of recursion:


test.list<-list("I"=list("A"=c("a", "b", "c"), "B"=c("d", "e", "f"), "C"=c("g", "h", 
"i")),
+                 "II"=list("A"=list("a"=c("a", "b", "c"), "b"=c("d", "e", "f"),
+                             "c"=c("g", "h", "i")),
+                   "B"=c("d", "e", "f"), "C"=c("g", "h", "i")))

test.list
$I
$I$A
[1] "a" "b" "c"

$I$B
[1] "d" "e" "f"

$I$C
[1] "g" "h" "i"


$II
$II$A
$II$A$a
[1] "a" "b" "c"

$II$A$b
[1] "d" "e" "f"

$II$A$c
[1] "g" "h" "i"


$II$B
[1] "d" "e" "f"

$II$C
[1] "g" "h" "i"



I would like to apply a function recursively to that list, in a way
that the function does someting with each vector (eg. rev()) and
returns a list of modified vectors that has the same structure as the
input list, in my example:


$I
$I$A
[1] "c" "b" "a"

$I$B
[1] "f" "e" "d"

$I$C
[1] "i" "h" "g"


$II
$II$A
$II$A$a
[1] "c" "b" "a"

$II$A$b
[1] "f" "e" "d"

$II$A$c
[1] "i" "h" "g"


$II$B
[1] "f" "e" "d"

$II$C
[1] "i" "h" "g"



I understand that with a fixed number of recursion levels one can use
lapply() in a nested way, but what if the numbers of recursion levels
is not fixed or is different between the list elements as it is in my
example?

Any hint will be appreciated.

Best,

Georg

______________________________________________
[email protected] 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.


--
Brian D. Ripley,                  [EMAIL PROTECTED]
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
[email protected] 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.

Reply via email to