私はいくつかの動的な問題 (ベイズ規則を使用した信念の更新について) に取り組んでおり、for ループを使用する現在のソリューションは非常に遅いため、計算を高速化するための「ループレス」ソリューションを探しています。
データ フレームまたはマトリックスがあり、行ごとに同じ計算を行いたいとします。ただし、行の計算には、行r
の前の計算で生成された出力が必要r-1
です。このプロセスは、次のように説明できます。
R
byn
行列 、MA
およびいくつかの初期変数があるとしy0
ます。
[input] MA[1,] + y0 => [output] y1
[input] MA[2,] + y1 => [output] y2
[input] MA[3,] + y2 => [output] y3
- ....
最も単純な例の 1 つは、 の計算ですn!
。の値n! = n * (n-1)!
。ここ(n-1)!
で、 は前の計算の結果です。
私が思いついた最初の関数はapply
ファミリですが、適用関数は、現在のように再帰的 (または動的) 操作に適用できません。異なる入力に対して同じ計算を繰り返すだけで、出力を転送しません。他に使用できるトリックがあるかどうかはわかりません。この特定の問題に対してループのない解決策を思いつく天才はいますか?