迭代具有可变状态

时间:2016-07-20 13:57:25

标签: r iterator closures iteration mutable

我想模拟业务规则引擎,该引擎具有用户定义的变量,可以针对每个经过的业务事件进行更新。

获取按日期排序的历史业务事件的数据框。

trxs <- "
id date amt
1  1    10
2  1    20
3  2    40
4  2    20
5  3    10
" %>% textConnection() %>% read.table(header = TRUE) 

是否可以按顺序在每行上应用一个函数来更新两个变量date_last_resetamt_acc_since_last_reset,并将它们添加到正在处理的行中,其方式类似于下面的伪代码?

if (date - date_last_reset < 2 ) {
   amt_acc_since_last_reset <- amt_acc_since_last_reset + amt
} else {
   date_last_reset <- date
   amt_acc_since_last_reset <- amt
}
add variables to row and process next

哪会导致

rtrxs <- "
id date amt date_last_reset amt_acc_since_last_reset
1  1    10   1              10
2  1    20   1              30
3  2    40   1              70 
4  2    20   1              90
5  3    10   3              10
" %>% textConnection() %>% read.table(header = TRUE) 

0 个答案:

没有答案