From: Georg Otto <georg.otto_at_tuebingen.mpg.de>

Date: Wed, 11 Jun 2008 17:51:51 +0200

R-help_at_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. Received on Wed 11 Jun 2008 - 16:45:26 GMT

Date: Wed, 11 Jun 2008 17:51:51 +0200

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_at_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. Received on Wed 11 Jun 2008 - 16:45:26 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Thu 12 Jun 2008 - 13:30:43 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*