【发布时间】:2016-07-11 12:40:47
【问题描述】:
我有一个这样的数据框:
wpt ID Fuel Dist Express Local
1 S36 12 1 1 0
2 S36 14 2 1 0
inter S36 NA NA 1 0
inter S36 NA NA 1 0
3 S36 16 4 1 0
inter S36 NA NA 0 1
4 S36 18 6 0 1
5 S36 22 7 0 1
6 W09 45 9 1 0
inter W09 NA NA 1 0
inter W09 NA NA 1 0
inter W09 NA NA 1 0
7 W09 48 14 0 1
8 W09 50 15 0 1
(1)我想插值和插入值到具有 Fuel 和 Dist 列的 NA 的位置。我将带有“inter”的行与常规编号的“wpt”的开始行和结束行一起视为一个单位。然后进行插值。
预期的输出是这样的:
wpt ID Fuel Dist Express Local
1 S36 12 1 1 0
2 S36 14 2 1 0
inter S36 14.6667 2.67 1 0
inter S36 15.3333 3.33 1 0
3 S36 16 4 1 0
inter S36 17 5 0 1
4 S36 18 6 0 1
5 S36 22 7 0 1
6 W09 45 9 1 0
inter W09 45.75 10.25 1 0
inter W09 46.50 11.50 1 0
inter W09 47.25 12.75 1 0
7 W09 48 14 0 1
8 W09 50 15 0 1
要清楚,第一段插值是这样计算的:
> seq(14,16,length.out = 4)
[1] 14.00000 14.66667 15.33333 16.00000
(2) 然后我想通过ID得到Express和Local每一类的累计和。预期的输出是这样的:
ID Cumsum.Fuel Cumsum.Dist Express Local
S36 4 3 1 0
S36 5 2 0 1
W09 2.25 3.75 1 0
W09 2 1 0 1
明确,Express 的“S36”的 Cum.sum.Fuel 是 16-12=4。这同样适用于其他人。
提前致谢!!!
【问题讨论】:
-
@akrun,刚刚添加,很抱歉造成混淆。
-
我更新了帖子,请查收。
标签: r dataframe interpolation