在R中处理含NA的条件累积求和并跟踪阶段波动
R语言:带NA处理的累积得分计算与波动阶段跟踪
原始数据
df <- data.frame(time = 0:9, y_ex1 = c(1,NA,0,1,NA,NA,NA,1,0,0), y_ex2 = c(1,NA,0,0,NA,NA,NA,1,0,0), y_ex3 = c(1,NA,0,1,NA,NA,NA,0,0,0), y_ex4 = c(1,NA,0,0,NA,NA,NA,0,0,0), y_ex5 = c(1,1,0,0,1,1,1,0,0,0) )
需求说明
1. 累积得分计算规则
- 计算累积和,遇到
0则重置为0,重新开始累积 - 遇到
NA时:- 若NA前后的非NA数值相同,累积和继续(NA按前后相同数值的累积逻辑计算)
- 若NA前后的非NA数值不同,每个NA加0.5
2. 波动阶段(wave)跟踪规则
当数值在0与1之间切换时,视为开启一个新的波动阶段,示例参考y_ex1、y_ex4的波动序列。
问题
尝试用循环实现上述逻辑效果不佳,寻求Base R或Tidyverse的解决方案。
内容的提问来源于stack exchange,提问作者cdd
相关产品推荐
相关产品推荐

