R中多个分组的线性插值

时间:2019-07-18 21:27:43

标签: r linear-interpolation

我有以下数据集:

                 District      Type   DaysBtwn Start_Day  End_Day Start_Vol   End_Vol 
1             A             0             3             0             31             28             23 
2             A             1             3             0             31             24             0 
3             B             0             3             0             31             17700     10526 
4             B             1             3             0             31             44000       35800 
5             C             0             3             0             31             5700         0 
6             C             1             3             0             31             35000       500

对于每个组组合District & Type,我想做一个简单的线性插值法:for a x=Days (Start_Day and End_Day)y=Volumes (Start_Vol and End_Vol),我希望为xout = DaysBtwn返回估计的体积。

我尝试了很多事情。我认为我的数据设置方式有问题。有人可以指出我正确的方向,如何使用R中的近似函数来获得所需的输出吗?我不介意四处移动数据集以获取大约正确的格式。

所需输出示例:

District Type EstimatedVol 
1           0           25 
2           1           15 
3           0           13000 
4           1           39000 
5           0           2500 
6           1           25000
   dt <- data.table(input) interpolation <- dt[, approx(x,y,xout=z), by=list(input$District,input$Type)]

1 个答案:

答案 0 :(得分:1)

为什么不直接计算呢?

dt$EstimatedVol <- (End_Vol - Start_Vol) / (End_Day - Start_Day) * (DaysBtwn - Start_Day) + Start_Vol