R时间序列中的远程假日和周末



我想使用Pearson相关性来检测加密货币和欧元/美元之间的相关性。

我选择使用从2020-11-01到今天的时间跨度。问题显然是,在加密货币回报系列中,假日和周末都被包括在内,这使得我的时间序列比欧元/美元的时间序列更长。

以下是我用来下载的一些代码行(通过CryptowatchR包(:

df.ohlc.daily_pax_cor <- get_ohlc(pax, periods = 86400, after = "2020-11-01", exchange = "Bitfinex", datetime=TRUE)
index_daily_pax_cor <- df.ohlc.daily_pax_cor$CloseTime
data_daily_pax_cor <- data.frame(df.ohlc.daily_pax_cor[,2:6])
df.ohlc.daily_pax_cor_xts <- xts(data_daily_pax_cor, index_daily_pax_cor)
pax_daily_return_cor <- dailyReturn(df.ohlc.daily_pax_cor_xts, log=TRUE)

观测次数为264次。

对于欧元/美元,这就是我所做的:

getSymbols("EURUSD=X", src = "yahoo", from = "2020-11-01")
EURUSD_daily_cor = `EURUSD=X`
eurusd_daily_return_cor = dailyReturn(EURUSD_daily_cor)

这给我留下了188个观察结果。

如何操作时间序列,使它们具有相同的长度?

使用此设置:

library(quantmod)
getSymbols("EURUSD=X", from = "2020-11-01")
getSymbols("AAPL", from = "2020-11-01")
# EURUSD=X has extra times
dim(`EURUSD=X`)
## [1] 188   6
dim(AAPL)
## [1] 179   6
setdiff(time(AAPL), time(`EURUSD=X`)) 
## numeric(0)

1(merge使用all=FALSE合并两个序列,只保留常用时间。

both <- merge(AAPL, `EURUSD=X`, all = FALSE)
nrow(both)
## [1] 179   6

2(相交另一种可能性是:

time0 <- as.Date(intersect(time(AAPL), time(`EURUSD=X`)))
AAPL0 <- AAPL[time0]
`EURUSD=X0` <- `EURUSD=X`[time0]

最新更新