我想将递归函数的输出保存为列表。
> (getNames(74, foo))
[1] "Excavata"
[1] "Excavata"
[1] "Excavata"
[1] "Excavata"
[1] "Stramenopiles"
[1] "Stramenopiles"
[1] "Stramenopiles"
[1] "Excavata"
[1] "Excavata"
[1] "Metazoa"
我该怎么做呢?也许这比我想象的要简单,但我已经被困了几天了!
我不认为这里的代码很重要:我的问题的一般想法是将递归函数的输出(例如hanoi的塔)保存为数据类型,例如list或data.frame。
答案 0 :(得分:3)
如果你真的认为确切的代码无关紧要:
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
参数允许您第一次创建新列表,但随后将现有列表传递给递归调用。
答案 1 :(得分:0)
没有代码可以看到我不确定它是否有用,但你考虑过使用rapply吗? rapply help page它是lapply和lapply的递归版本,返回列表作为输出。