我正在研究一些动态问题(关于使用贝叶斯规则更新信念)并寻求“无循环”解决方案来加快计算速度,因为我当前使用 for 循环的解决方案非常慢。
假设我有一个数据框或矩阵,并且对于每一行,我都想做同样的计算。但是,对 row 的计算r
需要在上一次对 row 的计算中生成的输出r-1
。该过程可以通过以下方式说明:
假设我有一个R
矩阵n
,MA
和一些初始变量y0
:
[input] MA[1,] + y0 => [output] y1
[input] MA[2,] + y1 => [output] y2
[input] MA[3,] + y2 => [output] y3
- ……
最简单的例子之一可能是计算n!
. 的值n! = n * (n-1)!
,其中(n-1)!
是上一次计算的结果。
我想出的第一个函数是apply
家庭,但应用函数不能像我现在这样应用于递归(或动态)操作;它只是对不同的输入重复相同的计算,但不会向前传递输出。不确定我们是否可以使用任何其他技巧。任何天才都可以为这个特定问题提出一个无循环的解决方案吗?