我正在尝试为两个不规则的时间序列做一个相当于vlookup的excel。
具有DAILY频率的一个动物园对象保存每列中的统计量的等级。
> head(sdRANK.z); dim(sdRANK.z)
B1 WTI1 NG1 HO1 RB1 W1 SB1 CO1 C1 S1 LU1 CT1 LE1 SM1 KC1 BO1 LC1 FC1 HG1 GC1 SI1
2011-02-28 9 8 7 11 15 6 1 10 5 18 4 2 13 17 12 16 19 20 14 21 3
2011-03-01 9 8 7 11 14 6 1 10 5 18 4 2 13 17 12 16 19 20 15 21 3
2011-03-02 9 7 8 12 14 6 3 10 5 18 4 1 13 17 11 16 19 20 15 21 2
2011-03-03 9 8 7 12 15 6 1 10 5 18 4 2 13 17 11 16 19 20 14 21 3
2011-03-04 9 8 7 12 15 6 1 10 5 18 4 2 13 17 11 16 19 20 14 21 3
2011-03-07 9 8 7 12 15 6 1 11 5 18 4 2 13 17 10 16 19 20 14 21 3
[1] 633 21
>
具有每月频率的第二个动物园对象在其行中具有每个月的最后一个工作日。此矩阵的列当前填充了0
。> head(volMAT.z); dim(volMAT.z)
B1 WTI1 NG1 HO1 RB1 W1 SB1 CO1 C1 S1 LU1 CT1 LE1 SM1 KC1
2011-02-28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2011-03-31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2011-04-29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2011-05-31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2011-06-30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2011-07-29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BO1 LC1 FC1 HG1 GC1 SI1
2011-02-28 0 0 0 0 0 0
2011-03-31 0 0 0 0 0 0
2011-04-29 0 0 0 0 0 0
2011-05-31 0 0 0 0 0 0
2011-06-30 0 0 0 0 0 0
2011-07-29 0 0 0 0 0 0
[1] 30 21
我希望将每日数据集中的排名合并到每月数据集中,其结果类似于Excel中的vlookup函数,其中"近似"抬头。这意味着近似匹配始终是在月末之前发生的最接近的值。因此,最终矩阵中的第一行将如下所示:
2011-03-01 9 8 7 11 14 6 1 10 5 18 4 2 13 17 12 16 19 20 15 21 3
我花了几天时间尝试使用merge和merge.zoo的各种组合,没有太多进展。任何帮助将不胜感激。
感谢复活节快乐周日!!
答案 0 :(得分:0)
解决!!
y=as.timeSeries(sdMAT.z)
y2=daily2monthly(y)
2行代码和4天的痛苦!!