如何在数据集中添加内插 NA 值

问题描述

我有一个名为“newData”的数据框(57 行,9 列),我试图用内插近似值替换 NA 值并绘制图形。我试过使用 na.approx 和 interp1 等函数,但我没有成功。有关如何解决此问题的任何解决方案?

城市 SO2 NO2 O3 PM10 PM2.5 CO
2012 蒂兰 6.30 23.83 55.79 35.44 19.24 0.43 3.95
2013 蒂兰 不适用 27.30 51.03 32.56 16.45 不适用 不适用
2014 蒂兰 15.52 35.01 32.64 54.06 不适用 0.85 2.76

解决方法

您可以使用 zoo::na.approx -

#Generate data
set.seed(123)
df <- data.frame(id = letters[1:10],a = rnorm(10),b = rnorm(10))
#assign random NA's
df$a[c(3,5)] <- NA
df$b[c(1,6,7)] <- NA
#apply na.approx
df[-1] <- zoo::na.approx(df[-1])
df

#   id           a          b
#1   a -0.56047565         NA
#2   b -0.23017749  0.3598138
#3   c -0.07983455  0.4007715
#4   d  0.07050839  0.1106827
#5   e  0.89278669 -0.5558411
#6   f  1.71506499 -1.0260998
#7   g  0.46091621 -1.4963585
#8   h -1.26506123 -1.9666172
#9   i -0.68685285  0.7013559
#10  j -0.44566197 -0.4727914