使用dplyr对data.frame排序并按水年计算Q超阈值累计天数
实现方案
现有代码的问题在于filter(Q > 3)会删除Q值不高于阈值的行,无法满足保留所有原始行的要求,调整操作逻辑如下:
- 先对全表按
Date列升序排序,修正原数据中日期颠倒的问题 - 按
wy分组后,用cumsum()对Q值高于阈值的逻辑结果累加,得到累计天数
完整可运行代码:
library(dplyr) mdat <- dat %>% arrange(Date) %>% group_by(wy) %>% mutate(abvThreshCum = cumsum(Q > 3.0))
以上代码运行结果和你给出的期望输出完全一致。
内容的提问来源于stack exchange,提问作者user2256085
相关产品推荐
相关产品推荐

