-3

我想将递归函数的输出保存为列表。

> (getNames(74, foo))
[1] "Excavata"
[1] "Excavata"
[1] "Excavata"
[1] "Excavata"
[1] "Stramenopiles"
[1] "Stramenopiles"
[1] "Stramenopiles"
[1] "Excavata"
[1] "Excavata"
[1] "Metazoa"

我该怎么做呢?也许这比我想象的要简单,但我已经被困了几天!

我不认为这里的代码很重要:我的问题的总体思路是将递归函数(例如 Hanoi 塔)的输出保存为数据类型,例如列表或 data.frame。

4

2 回答 2

4

如果您真的认为确切的代码无关紧要:

recursive_add <- function(x, res_list=NULL) {
  if (is.null(res_list)) {
    res_list <- list()
  }
  if (x == 26) {
    return(res_list)
  }
  res_list[[x]] <- letters[x]
  res_list <- recursive_add(x + 1, res_list)
  return(res_list)
}
recursive_add(1)

默认NULL参数允许您第一次创建一个新列表,然后将现有列表传递给递归调用。

于 2013-02-14T23:46:32.247 回答
0

如果没有代码可以查看,我不确定它是否有用,但是您是否考虑过使用 rapply?rapply 帮助页面它是 lapply 的递归版本,并且 lapply 返回列表作为输出。

于 2013-02-15T00:09:40.367 回答