0
Raw Data    na.approx   desired result
1               1             1
NA              3             4
5               5             5
6               6             6
7               7             7
NA              8             4
NA              9             7
10             10            10
13             11            13
14             12            14

默认情况下,我相信会在两个已知值之间na.approx进行R插值;NA一个之前和另一个之后NA(结果将被视为上面的“na.approx”列)。有没有办法可以更改此函数以根据接下来的两个已知值进行插值?例如,第N一个 A 使用 5 和 6....而不是 1 和 5 进行插值。

4

1 回答 1

0

我不确定是否有与您想要做的完全等效的方法,但您可以通过以下方式获得类似的结果:

> data <- c(1, NA, 5,6,7,NA,NA,10,13,14)
> ind <- which(is.na(data))
> sapply(rev(ind), function(i) data[i] <<- data[i + 1] - 1)
> data
 [1]  1  4  5  6  7  8  9 10 13 14
于 2015-08-18T22:52:27.503 回答