三个数据帧的长度略有不同,因为观察是在不同的时间进行的,
它们如何及时同步以仅保留所有三个帧中的那些观察结果并丢弃仅在不同帧中出现的那些观察结果
这是日期框架本身
> head(sec1)
date time open high low close vol
1 2016.09.06 08:45 3081.5 3082.5 3080.5 3080.5 6
2 2016.09.06 08:50 3081.5 3081.5 3079.5 3080.5 6
3 2016.09.06 08:55 3081.5 3082.5 3081.5 3082.5 19
4 2016.09.06 09:00 3083.5 3083.5 3081.5 3082.5 19
5 2016.09.06 09:05 3083.5 3085.5 3082.5 3085.5 8
6 2016.09.06 09:10 3086.5 3086.5 3084.5 3086.5 15
> head(sec2)
date time open high low close vol
1 2016.09.13 13:00 95.34 95.40 95.33 95.39 36
2 2016.09.13 13:05 95.40 95.43 95.39 95.41 40
3 2016.09.13 13:10 95.42 95.44 95.40 95.42 37
4 2016.09.13 13:15 95.41 95.42 95.39 95.39 25
5 2016.09.13 13:20 95.40 95.41 95.38 95.38 21
6 2016.09.13 13:25 95.39 95.42 95.38 95.42 32
> head(sec3)
date time open high low close vol
1 2016.09.14 18:10 1.12433 1.12456 1.12431 1.12450 137
2 2016.09.14 18:15 1.12444 1.12459 1.12424 1.12455 139
3 2016.09.14 18:20 1.12454 1.12477 1.12446 1.12469 148
4 2016.09.14 18:25 1.12468 1.12474 1.12442 1.12453 120
5 2016.09.14 18:30 1.12452 1.12483 1.12442 1.12482 156
6 2016.09.14 18:35 1.12481 1.12499 1.12472 1.12474 126
输出应该是三个相同长度(nrow)的数据帧,所有数据帧的行应该有相同的日期和时间
据我了解,任务是在每个数据集中只留下那些在其他两个数据集中存在具有相似值的观测值的观测
date
值time
。我认为最简单的解决方案是:
date
和time
date
的组合time
代码(没有检查 - 懒得生成初始数据集;如果你在某处遗漏了一些东西并且它不起作用,请写下)
UPD 一切变得更加容易
如果我对问题的理解正确,那么你需要确定日期和时间的相交区间,并过滤掉落入这些区间的观测值。我注意到作为示例给出的数据按日期不重叠。
定义日期边界:
现在时间相同:
现在您可以过滤观察结果:
要使代码正常工作,您需要下载
dplyr
.