【发布时间】:2019-12-16 05:55:42
【问题描述】:
如何在没有循环的情况下获得相同的结果? 它相当于 reactiveX 中的 scan 函数,但具有自定义逻辑 (http://reactivex.io/rxjs/img/scan.png)
for (i in 2:nrow(x)) {
x$running_number[i] <-
ifelse(abs(x$running_number[(i - 1)] - x$numbers[i]) > max_diff,
x$numbers[i],
x$running_number[(i - 1)])
}
编辑:
在您回复后我不确定我问的是否正确。看看这个数据框
x <- data.frame(
c(1000, 1010, 1020, 1030, 1100, 1120, 1140, 1150, 1200),
c(1000, 1000, 1000, 1000, 1100, 1100, 1100, 1100, 1200)
)
colnames(x) <- c('input_v', 'output_v')
给定 x$input_v 需要得到 x$output_v
我可以像这样表达条件:
x$output_v <-
ifelse(
abs(x$input_v - somehow_get_me_last_assigned_x_output_v) > 90,
x$input_v,
somehow_get_me_last_assigned_x_output_v
)
【问题讨论】:
标签: r dplyr lapply rolling-computation