问题描述
我有两个数据框:
df1 <- data.frame(height = c(0,100,200,300,400),value = c(20,30,40,50,60))
df2 <- data.frame(height = c(40,500),value = c(NA,35,60,70))
df1 df2
height value height value
0 20 40 NA
100 30 100 35
200 40 200 50
300 50 300 60
400 60 500 70
我要在df1中插值以填充df2中缺少的高度(40)。
解决方法
您可以使用approxfun
来根据另一个数据框的值插值列的缺失值。
i <- is.na(df2$value)
df2$value[i] <- approxfun(df1$height,df1$value)(df2$height[i])
df2
# height value
#1 40 24
#2 100 35
#3 200 50
#4 300 60
#5 500 70