我正在处理 R 中的许多大型时间序列货币对定价数据。文件的大小往往为 100-300MB,我通常一次处理 3 个文件。我正在寻找一种(更)更有效的方法来考虑这些数据的 TIME 列。
我的数据开始看起来像:
PAIR TIME BID ASK
1 USD/JPY 2012-01-02 00:00:00.307 77.023 77.055
2 USD/JPY 2012-01-02 00:00:00.493 77.030 77.049
3 USD/JPY 2012-01-02 00:00:05.003 77.030 77.050
4 USD/JPY 2012-01-02 00:00:05.005 77.023 77.056
5 USD/JPY 2012-01-02 00:00:05.006 77.024 77.056
6 USD/JPY 2012-01-02 00:00:06.008 77.023 77.056
... ... ... ...
R 理解 TIME 列没有问题。例如,
USDJPY$TIME[2] - USDJPY$TIME[1]
给出输出
Time difference of 0.1860001 secs
数据已经按月组织成文件。不幸的是,这也太大了。我想按“交易周”细分定价数据
外汇交易发生在连续的多日期间,通常是从周一到周五。部分交易假期将暂停交易,这几天不会有数据。交易调度的性质是这样的,如果
USDJPY$TIME[t+1] - USDJPY$TIME[t]
... 大于 12 小时,时间 t 是美元兑日元该周的最后时间指数。
我还没有找到一种可接受的方法来将数据分解为交易周、指数或其他方式。我所有的尝试都以失败告终。USDJPY 文件包含约 1,900,000 行。
我尝试过的一种方法:
for(i in 1:(length(USDJPY$TIME)-1)){
USDJPY.diff <- c(USDJPY.diff, USDJPY$TIME[i+1]-USDJPY$TIME[i])
}
花费太长时间(我在完成之前退出了)