conditional-statements - 自R中最后一次满足条件以来如何对行求和
问题描述
我想找到具有不同条件的两行之间的累积和。
我的数据如下所示:
row diff state
1 30 3
2 30 2
3 30 2
4 30 1
5 30 1
6 30 1
7 30 2
8 30 2
9 30 3
10 30 1
对于 state == 1 的每一行,我想知道该行与 state == 3 的前一行之间的累积差异。
这是最终目标:
row diff state lag
1 30 3 NA
2 30 2 NA
3 30 2 NA
4 30 1 90
5 30 1 120
6 30 1 150
7 30 2 NA
8 30 2 NA
9 30 3 NA
10 30 1 30
我努力了:
df$lag[df$state == 1] <- cumsum(df$diff[df$state == 3])
但这只是给了我自 state == 1 开始以来的 cumsum:
row diff state lag
1 30 3 NA
2 30 2 NA
3 30 2 NA
4 30 1 30
5 30 1 60
6 30 1 90
7 30 2 NA
8 30 2 NA
9 30 3 NA
10 30 1 30
解决方案
推荐阅读
- ansible - 如何在执行剧本时在命令行中添加多个清单文件
- bixby - 如何在 bixby 中将一个话语与两个或多个意图绑定
- automation - 批处理文件以打开 .sql 文件并“作为脚本执行”
- python - 移动到下一页使用 BeautifulSoup 进行抓取
- ios - 如何更改 AppDelegate didBecomeActive 中的视图?
- python - boost python - 提取ndarray时的nullptr
- openstreetmap - GeoTIFF 未覆盖 QGIS3 中的底图
- java - 休眠标准不适用于同一个表中的两个值,使用 Restrictions.neProperty() 专门针对空值?
- ios - 用户不活动,使用 AppDelegate Swift 4 显示屏幕保护程序
- typescript - 如何迭代一个类的不存在的成员?