根据另一个数据框的值插值列的缺失值

问题描述

我有两个数据框:

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