如何在数据集中添加插值 NA 值
How to add interpolated NA values in a dataset
我有这个名为“newData”的数据框(57 行,9 列),我正在尝试用插值近似值替换 NA 值并绘制图形。我试过使用 na.approx 和 interp1 等函数,但没成功。关于如何解决这个问题的任何解决方案?
岁
城市
SO2
二氧化氮
O3
PM10
PM2.5
二氧化碳
奔驰
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
我有这个名为“newData”的数据框(57 行,9 列),我正在尝试用插值近似值替换 NA 值并绘制图形。我试过使用 na.approx 和 interp1 等函数,但没成功。关于如何解决这个问题的任何解决方案?
岁 | 城市 | SO2 | 二氧化氮 | O3 | PM10 | PM2.5 | 二氧化碳 | 奔驰 |
---|---|---|---|---|---|---|---|---|
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