基于连续值补全R数据框首行缺失值的技术需求
补全R数据框首行缺失值
问题说明
R数据框df1首行的odczyt.1和diff.1字段为缺失值(NA),需按以下规则补全:
- 取后续3个连续
diff.1值的平均值填充首行diff.1 - 用首行
odczyt.2的值减去该平均值,得到首行odczyt.1的值
原始数据
read.table(text = "DT odczyt.1 odczyt.2 diff.1 2023-07-26 14:30:01 NA 256.834 NA 2023-07-26 15:00:00 256.834 256.935 0.101 2023-07-26 15:30:00 256.935 257.122 0.187 2023-07-26 16:00:00 257.122 257.245 0.123 2023-07-26 16:30:00 257.245 257.649 0.404 2023-07-26 17:00:00 257.649 257.764 0.115 2023-07-26 17:30:00 257.764 257.942 0.178 2023-07-26 18:00:00 257.942 258.047 0.105", header = T, stringsAsFactors = F) -> df1
补全实现代码
直接通过索引计算并赋值:
# 计算后续3个diff.1值的平均值 diff_avg <- mean(df1$diff.1[2:4]) # 补全首行diff.1,保留3位小数 df1$diff.1[1] <- round(diff_avg, 3) # 补全首行odczyt.1,保留3位小数 df1$odczyt.1[1] <- round(df1$odczyt.2[1] - diff_avg, 3)
补全后结果
read.table(text = "DT odczyt.1 odczyt.2 diff.1 2023-07-26 14:30:01 256.697 256.834 0.137 2023-07-26 15:00:00 256.834 256.935 0.101 2023-07-26 15:30:00 256.935 257.122 0.187 2023-07-26 16:00:00 257.122 257.245 0.123 2023-07-26 16:30:00 257.245 257.649 0.404 2023-07-26 17:00:00 257.649 257.764 0.115 2023-07-26 17:30:00 257.764 257.942 0.178 2023-07-26 18:00:00 257.942 258.047 0.105", header = T, stringsAsFactors = F) -> df1
内容的提问来源于stack exchange,提问作者GrBa
相关产品推荐
相关产品推荐

