最近问了这个问题,并被建议使用' to.minutes5() '函数。但是,这样做时,我收到以下错误:
Error in to.period(x, "minutes", k = 5, name = name, ...) :
unsupported type
我的原始文本文件具有分隔列的日期和时间:
GBPUSD<- read.table("GBPUSD.txt", sep=',')
head(GBPUSD)
V1 V2 V3 V4 V5 V6 V7 V8
1 <TICKER> <DTYYYYMMDD> <TIME> <OPEN> <HIGH> <LOW> <CLOSE> <VOL>
2 GBPUSD 20010102 230100 1.5021 1.5021 1.5018 1.5018 4
3 GBPUSD 20010102 230200 1.5019 1.5019 1.5019 1.5019 4
4 GBPUSD 20010102 230300 1.5018 1.5019 1.5018 1.5019 4
5 GBPUSD 20010102 230400 1.5019 1.5019 1.5019 1.5019 4
6 GBPUSD 20010102 230500 1.5017 1.5018 1.5017 1.5018 4
所以我采取的第一步是使用新的“时间”列中的 paste() 函数将它们混合到一个列中:
GBPUSD$Time <-paste(GBPUSD[,2],GBPUSD[,3],sep=",")
之后,我使用新合并的“时间”(第 9 列)创建了一个 POSIXct 时间戳:
time<- as.POSIXct(GBPUSD[,9], format="%Y%m%d,%H%M%S")
然后我开始使用收盘价和时间创建一个 xts 时间序列:
gbp<- xts(GBPUSD[7], time)
但是,当我调用 to.minutes5(gbp) 时,出现错误。
如何在不运行循环的情况下将文本文件中的一分钟收盘价转换为 5 分钟价格?
此外,我将如何将 1 分钟 OHLC 转换为 5 分钟 OHLC?
更新:
当我尝试 khoxsey 提出的建议时,以下行出现错误:
raw_cable <- read.table(header=FALSE, text=data, col.names=cn, colClasses=cl)
"Error in textConnection(text) : invalid 'text' argument"
我想这是因为我首先导入了一个表格数据框并删除了第一行:
data<- read.table("GBPUSD.txt", sep=',')
data <- data[-1,] #deleted the initial header to add at a later step, as suggested