我觉得这是一个相当简单的问题,但对于我的生活,我似乎无法找到答案。我有一个相当标准的数据框,我想做的是对一列值求和,直到它们达到某个值(该值或大于该值),此时它将 1 放入一个新列(标记为keep) 并在 0 处重新开始求和。
我有一列分钟,分钟之间的差异,一个保留列和一个累积总和列(我使用的示例比实际的完整数据集要干净得多)
minutes difference keep difference_sum
1052991158 0 0 0
1052991338 180 0 180
1052991518 180 0 360
1052991698 180 0 540
1052991878 180 0 720
1052992058 180 0 900
1052992238 180 0 1080
1052992418 180 0 1260
1052992598 180 0 1440
1052992778 180 0 1620
1052992958 180 0 1800
差和列是用代码计算的
caribou.sub$difference_sum<-cumsum(difference)
我想要做的是运行上面的代码,条件是,当总和值达到 1470 或任何大于它的数字时,它将 1 放在保持列中,然后重新开始求和,并继续在整个数据集中运行。
提前致谢,如果您需要更多信息,请告诉我。
艾登