See

        ?rapply

for your example

        rapply( test.list, rev, how='replace' )

HTH,

Chuck

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

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


Charles C. Berry                            (858) 534-2098
                                            Dept of Family/Preventive Medicine
E mailto:[EMAIL PROTECTED]                  UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901

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

Reply via email to