-3

再帰関数の出力をリストとして保存したいと思います。

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

どうすればこれを行うことができますか?たぶんこれは私が思っているよりも簡単ですが、私は数日間立ち往生しています!

ここでのコードは重要ではないと思います。私の質問の一般的な考え方は、再帰関数(ハノイの塔など)の出力をリストや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 に答える