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

Remote holidays and Weekends from timeseries in R

提问人:Nina 提问时间:7/21/2021 更新时间:7/22/2021 访问量:64

问:

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

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

以下是我用来下载它的一些代码行(通过 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 个观察结果。

如何操作时间序列以使其具有相同的长度?

R 时间序列 相关 数据操作

评论


答:

0赞 G. Grothendieck 7/22/2021 #1

使用此设置:

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)合并:使用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]