最近この質問をしましたが、「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
したがって、私が行った最初のステップは、新しい「TIME」列でpaste()関数を使用してそれらを1つの列にブレンドすることでした。
GBPUSD$Time <-paste(GBPUSD[,2],GBPUSD[,3],sep=",")
その後、新しくマージされた「TIME」(9列目)を使用してPOSIXctタイムスタンプを作成しました。
time<- as.POSIXct(GBPUSD[,9], format="%Y%m%d,%H%M%S")
次に、終値と時間を使用してxts時系列を作成することに取り掛かりました。
gbp<- xts(GBPUSD[7], time)
ただし、to.minutes5(gbp)を呼び出すと、エラーが発生します。
ループを実行せずに、テキストファイルの1分間の終値を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