给出的数据都是虚构的,现实中要复杂得多
t <- data.frame(v1=c(265, -268, 123, 58, 560, 56, -260, 40, 530, -895, 20))
我想用两个极限值来计算累积和:0和500。如果累计总额超过500,则必须保留500。如果累计总额变为负数,则必须存储0。获得的结果如下:
v1 sum.c
1 265 265
2 -268 0
3 123 123
4 58 181
5 560 500
6 56 500
7 -260 240
8 40 280
9 530 500
10 -895 0
11 20 20
Excel中的公式如下所示:=如果(B1+A2〈0;0;如果(B1+A2〉500;500; B1+A2))
有什么想法吗
3条答案
按热度按时间vulvrdjw1#
我们可以使用
min
和max
来设置边界,使用Reduce
来迭代向量eit6fx6z2#
从@ThomasIsCoding的想法,这里是tidyverse方法:
qc6wkl3g3#
使用
Rcpp
(来自here的基本代码):您也可以在R中定义自己的自定义累计和。