我正在研究一些动态问题(关于使用贝叶斯规则更新信念)并寻求“无循环”解决方案来加快计算速度,因为我当前使用 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家庭,但应用函数不能像我现在这样应用于递归(或动态)操作;它只是对不同的输入重复相同的计算,但不会向前传递输出。不确定我们是否可以使用任何其他技巧。任何天才都可以为这个特定问题提出一个无循环的解决方案吗?