我想模拟业务规则引擎,该引擎具有用户定义的变量,可以针对每个经过的业务事件进行更新。
获取按日期排序的历史业务事件的数据框。
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_reset
和amt_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)