如何设置条件剔除错误数据?0℃有效值场景下的填充方案咨询
错误温度数据的剔除与补全方案
问题核心
- 如何定义错误数据的剔除条件(业务中0℃为有效值,不能直接过滤)
- 错误数据剔除后,用什么值补全更合理
当前实现的代码方案
你目前用dplyr的mutate+fill处理:
wlot3.h.cor <- wlot3.h %>% mutate (T.sr.cor = ifelse (T.sr == 0, NA, T.sr)) %>% fill (T.sr.cor)
优化建议
1. 精准的错误值判断条件
仅把0℃标记为错误值不符合业务逻辑,结合数据趋势来看,部分0℃明显偏离正常曲线,可从这几个维度设置条件:
- 连续异常检测:如果连续出现多个0℃且无业务场景支撑(如设备停机),标记为错误值
- 偏差阈值检测:计算每个0℃点与前后n个数据的均值偏差,超过设定阈值(如±5℃)则标记为异常
- 合理区间限制:根据业务场景定义温度的正常范围(如-5℃~50℃),超出范围的直接标记为NA
2. 更适配的补全方式
当前的前向填充(fill)适合短时间缺失,针对不同场景可选择:
- 线性插值:用
zoo包的na.approx(),适合时间序列类温度数据,能贴合整体趋势 - 滑动窗口均值:用
rollapply()计算局部窗口内的均值填充缺失值,适合温度波动平缓的场景 - 业务规则补全:如果有同工况、同批次的历史温度数据,用对应时段的均值或中位数补全
内容的提问来源于stack exchange,提问作者GrBa
相关产品推荐
相关产品推荐

