【发布时间】:2021-08-21 09:45:59
【问题描述】:
我有一个 csv。包含每日 ohlc 汇率数据的文件。现在我需要每小时数据,但是当我尝试使用 quantmod 包的 periodReturn 函数时收到错误消息。 这是我所做的:
EURUSD_Min = CSV_EUR
eurusd_minutedata_df = as.data.frame(EURUSD_Min)
colnames(eurusd_minutedata_df)[1] <- "Date"
colnames(eurusd_minutedata_df)[2] <- "Time"
colnames(eurusd_minutedata_df)[3] <- "Bid"
colnames(eurusd_minutedata_df)[4] <- "Ask"
colnames(eurusd_minutedata_df)[5] <- "High"
colnames(eurusd_minutedata_df)[6] <- "Low"
colnames(eurusd_minutedata_df)[7] <- "Close"
eurusd_minutedata_df$Date = as.POSIXct(paste(eurusd_minutedata_df$Date, eurusd_minutedata_df$Time), format="%Y-%m-%d %H:%M:%S")
eurusd_minutedata_df_final <- eurusd_minutedata_df[-2]
index_min_eurusd <- eurusd_minutedata_df_final$Date
data_min_eurusd <- data.frame(eurusd_minutedata_df_final[,2:6])
df.ohlc.min_eurusd_xts <- xts(data_min_eurusd, index_min_eurusd)
eurusd_min_return <- diff(log(Cl(df.ohlc.min_eurusd_xts)), lag=1)
eurusd_min_return
2021-07-28 21:16:00 1.690188e-04
2021-07-28 21:17:00 3.379520e-04
2021-07-28 21:18:00 0.000000e+00
2021-07-28 21:19:00 -1.689617e-04
periodReturn(eurusd_min_return, period = "hourly")
但我得到了错误:
Error in if (on == "secs" || on == "mins") on <- substr(on, 1L, 3L) :
missing value where TRUE/FALSE needed
有谁知道我需要做什么才能让它工作?
原始数据如下所示: # 小标题:2,982 x 7
`Local Date` `Local Time` Bid Ask High Low Open
<date> <time> <dbl> <dbl> <dbl> <dbl> <dbl>
1 2021-07-30 23:00 1.19 1.19 1.19 1.19 1.19
2 2021-07-30 22:59 1.19 1.19 1.19 1.19 1.19
3 2021-07-30 22:58 1.19 1.19 1.19 1.19 1.19
4 2021-07-30 22:57 1.19 1.19 1.19 1.19 1.19
5 2021-07-30 22:56 1.19 1.19 1.19 1.19 1.19
【问题讨论】:
-
亲爱的妮娜,你能提供一些数据样本吗?