R中的时间序列数据的条件插值
问题描述:
我有N/A的时间序列数据。数据将以动画散点图结尾R中的时间序列数据的条件插值
Week X Y
1 1 105
2 3 110
3 5 N/A
4 7 130
8 15 160
12 23 180
16 30 N/A
20 37 200
对于流畅的动画,数据将通过计算的附加值/行进行补充。对于X值,这只是算术。到目前为止没有问题。
Week X Y
1 1 105
2
2 3 110
4
3 5 N/A
6
4 7 130
8
9
10
11
12
13
14
8 15 160
16
17
18
19
20
21
22
12 23 180
24
25
26
27
28
29
16 30 N/A
31
32
33
34
35
36
20 37 200
的Y值应被内插并且在额外要求,即内插只应该连续两个值之间,而不是值,即在它们之间具有N/A之间出现。
Week X Value
1 1 105
2 interpolated value
2 3 110
4
3 5 N/A
6
4 7 130
8 interpolated value
9 interpolated value
10 interpolated value
11 interpolated value
12 interpolated value
13 interpolated value
14 interpolated value
8 15 160
16 interpolated value
17 interpolated value
18 interpolated value
19 interpolated value
20 interpolated value
21 interpolated value
22 interpolated value
12 23 180
24
25
26
27
28
29
16 30 N/A
31
32
33
34
35
36
20 37 200
我已经有大约尝试,转换的“原始” N/A到占位符值,并与na.approx等试图动物园包,但鸵鸟政策得到它,来表达对一个正确的条件语句这种“条件近似”或“条件间隙填充”。任何提示是值得欢迎的,非常感激。
预先感谢
答
更换的NA用inf,内插,然后还原无限值NA。
library(zoo)
DF2 <- DF
DF2$Y[is.na(DF2$Y)] <- Inf
w <- merge(DF2, data.frame(Week = min(DF2$Week):max(DF2$Week)), by = 1, all.y = TRUE)
w$Value <- na.approx(w$Y)
w$Value[!is.finite(Value)] <- NA
给出以下内容,其中周已扩大到所有周,Y是使得原始的NA被示为Inf文件和插入的NA为NA。值插值Y.
> w
Week X Y Value
1 1 1 105 105.0
2 2 3 110 110.0
3 3 5 Inf NA
4 4 7 130 130.0
5 5 NA NA 137.5
6 6 NA NA 145.0
7 7 NA NA 152.5
8 8 15 160 160.0
9 9 NA NA 165.0
10 10 NA NA 170.0
11 11 NA NA 175.0
12 12 23 180 180.0
13 13 NA NA NA
14 14 NA NA NA
15 15 NA NA NA
16 16 30 Inf NA
17 17 NA NA NA
18 18 NA NA NA
19 19 NA NA NA
20 20 37 200 200.0
注:输入DF
在重现的形式:
Lines <- "
Week X Y
1 1 105
2 3 110
3 5 N/A
4 7 130
8 15 160
12 23 180
16 30 N/A
20 37 200"
DF <- read.table(text = Lines, header = TRUE, na.strings = "N/A")
工作就像一个魅力!再次感谢! – tsWIDE