【发布时间】:2019-02-11 07:58:33
【问题描述】:
我有 3 列:
分期付款
兴趣
曝光
第一行是这样的
分期利息曝光
0 0 1000
第 1 行的分期付款为 0,之后为固定数字。让它成为 100。
第 i 行的利息 = 0.5% * 第 (i-1) 行的曝光率
第i行曝光=第(i-1)行曝光-(第i行分期-第i行利息)
installment interest exposure
0 0 1000
100 0.005*1000 1000-(100-5)
当前兴趣取决于先前的曝光,当前曝光取决于当前兴趣。这应该一直持续到曝光为 0。我已经使用 R 中的 for 循环完成了此操作。但是我的数据很大,我不想要 for环形。 所以如果可能的话,我需要类似 apply 甚至更快的方法
有没有其他方法可以在没有循环的情况下做到这一点。我正在寻找一个快速的过程。
【问题讨论】:
-
看看
dplyr::lag还发布了一个可重复的示例(通过dput提供的数据样本)与您的 for 循环,以便我们可以根据您的需要检查可能的结果。我很确定这可以通过矢量化方式处理。 -
我认为在这种情况下,循环是最可能的方式。因为,新行的值取决于前一行。我猜 R 中的所有函数都适用于指定长度的向量或数据帧。或者换句话说,您必须编写每行执行的代码。因此,它需要循环遍历所有行