【发布时间】:2019-01-15 15:55:57
【问题描述】:
我有这些 data.frame 称为 df1 代表三年内的每个月(36 行 x 4 列):
Year Month v1 v2 v3
1 2015 1 15072.73 2524.102 17596.83
2 2015 2 15249.54 2597.265 17846.80
3 2015 3 15426.35 2670.427 18096.78
4 2015 4 15603.16 2743.590 18346.75
5 2015 5 15779.97 2816.752 18596.72
6 2015 6 15956.78 2889.915 18846.69
7 2015 7 16133.59 2963.077 19096.67
8 2015 8 16310.40 3036.240 19346.64
9 2015 9 16487.21 3109.402 19596.61
10 2015 10 16664.02 3182.565 19846.58
11 2015 11 16840.83 3255.727 20096.56
12 2015 12 17017.64 3328.890 20346.53
13 2016 1 17018.35 3328.890 20347.24
14 2016 2 17019.05 3328.890 20347.94
15 2016 3 17019.76 3328.890 20348.65
16 2016 4 17020.47 3328.890 20349.36
17 2016 5 17021.17 3328.890 20350.06
18 2016 6 17021.88 3328.890 20350.77
19 2016 7 17022.58 3328.890 20351.47
20 2016 8 17023.29 3328.890 20352.18
21 2016 9 17024.00 3328.890 20352.89
22 2016 10 17024.70 3328.890 20353.59
23 2016 11 17025.41 3328.890 20354.30
24 2016 12 17026.12 3328.890 20355.01
25 2017 1 17023.94 3328.890 20352.83
26 2017 2 17021.76 3328.890 20350.65
27 2017 3 17019.58 3328.890 20348.47
28 2017 4 17017.40 3328.890 20346.29
29 2017 5 17015.22 3328.890 20344.11
30 2017 6 17013.04 3328.890 20341.93
31 2017 7 17010.86 3328.890 20339.75
32 2017 8 17008.68 3328.890 20337.57
33 2017 9 17006.50 3328.890 20335.39
34 2017 10 17004.32 3328.890 20333.21
35 2017 11 17002.14 3328.890 20331.03
36 2017 12 17002.14 3328.890 20331.03
我想对所有这些值进行插值,以获得每个月所有日子的插值。它们位于data.frame 中,称为df2 (1096 x 1)。
df2 看起来像:
seq(start, end, by = "days")
1 2015-01-01
2 2015-01-02
3 2015-01-03
4 2015-01-04
5 2015-01-05
6 2015-01-06
通过这种方式,我应该获得一个名为 results 的输出 data.frame 1096 行(365 天(2015)+ 366 天(2016)+ 365 天(2017))和 4 列。
我试过approx:
results <- as.data.frame(approx(x = df1, y = NULL, xout = df2 ,
method = "linear"))
但它会返回:
x y
1 2015-01-01 NA
2 2015-01-02 NA
3 2015-01-03 NA
4 2015-01-04 NA
5 2015-01-05 NA
6 2015-01-06 NA
感谢您的帮助!
【问题讨论】:
-
“所以至少需要两个完整的 (x, y) 对(对于方法 =“线性”,否则一个)。从帮助。您应该提供 y。我不确定它是否会一次完成所有列,您应该使用
lapply。考虑使用正常的回归函数,如lm或lmer和定义的模型
标签: r dataframe time-series linear-interpolation