我有以下数据集:
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)]
答案 0 :(得分:1)
为什么不直接计算呢?
dt$EstimatedVol <- (End_Vol - Start_Vol) / (End_Day - Start_Day) * (DaysBtwn - Start_Day) + Start_Vol