2016-11-29 3 views
2

Rパッケージquantstratで初めてRにデータをインポートしようとしています。以下を参照してください。日中データ用R - クォンタスタCSVインポート

fn1 <- "fgbl_formatted_vpoc_prior_week.txt" 
> fn1 

> dat <- read.table(file=fn1,sep=",",header=T,as.is=T) 
> dat 
       Timestamp Open High Low Last Volume 
1 2016-09-27 02:00:00 165.50 165.58 165.46 165.47  2001 
2 2016-09-27 03:00:00 165.47 165.65 165.46 165.63  1345 
3 2016-09-27 04:00:00 165.64 165.92 165.59 165.91  1241 
4 2016-09-27 05:00:00 165.91 166.13 165.91 165.97  880 
5 2016-09-27 06:00:00 165.98 165.98 165.76 165.78  748 

誰かが今、私はPOSIXctだと思う正しい日付/時刻の形式を持つquantstratに適した形式でこれを取得する方法を表示することができます。この種のデータをどのようにインポートするかを示すドキュメントを見つけるのには苦労しています。

答えて

2

時刻をPOSIXct形式にするのは間違いありません。 Quantstratはxtsのオブジェクトを使用します。これは作成する必要があります。ここでのコードの最初のビットは、あなたのデータを生成しますので、容易に再現を提供していませんでした:

library(xts) 
data <- " 
1 2016-09-27 02:00:00 165.50 165.58 165.46 165.47  2001 
2 2016-09-27 03:00:00 165.47 165.65 165.46 165.63  1345 
3 2016-09-27 04:00:00 165.64 165.92 165.59 165.91  1241 
4 2016-09-27 05:00:00 165.91 166.13 165.91 165.97  880 
5 2016-09-27 06:00:00 165.98 165.98 165.76 165.78  748" 
dat <- read.table(text = data, 
        col.names = c("num", "date", "time", "Open" , "High", "Low", "Last", "Volume")) 
dat <- cbind("Timestamp" = paste(dat$date, dat$time), dat) 
# Make dat look just like your example when loaded in R: 
dat[, c("num", "date", "time")] <- NULL 

# Now have your object, which would be a data.frame: 

dat 
# Timestamp Open High Low Last Volume 
# 1 2016-09-27 02:00:00 165.50 165.58 165.46 165.47 2001 
# 2 2016-09-27 03:00:00 165.47 165.65 165.46 165.63 1345 
# 3 2016-09-27 04:00:00 165.64 165.92 165.59 165.91 1241 
# 4 2016-09-27 05:00:00 165.91 166.13 165.91 165.97 880 
# 5 2016-09-27 06:00:00 165.98 165.98 165.76 165.78 748 

posix_times <- as.POSIXct(dat[, 1]) 
x_dat <- xts(x = dat[, 2:NCOL(dat)], order.by = posix_times) 
> x_dat 
# Open High Low Last Volume 
# 2016-09-27 02:00:00 165.50 165.58 165.46 165.47 2001 
# 2016-09-27 03:00:00 165.47 165.65 165.46 165.63 1345 
# 2016-09-27 04:00:00 165.64 165.92 165.59 165.91 1241 
# 2016-09-27 05:00:00 165.91 166.13 165.91 165.97 880 
# 2016-09-27 06:00:00 165.98 165.98 165.76 165.78 748 

> class(x_dat) 
#[1] "xts" "zoo" 

x_datあなたはquantstratで使用できるものです。

PS:

あなたがdatacampでhttp://www.r-programming.org/papersような良いリソースまたは(ない自由=()quantstratコースをたどる場合quantstratであなたの学習プロセスが速く多くなります見つけることがあります。https://www.datacamp.com/courses/financial-trading-in-rあり

+0

は、コードやアドバイスをありがとうございました@FXQuantTrader – ade1e

1

まったくPOSIXctに変換する必要がありません。read.zooの代わりread.tableであなたのファイルをインポートします。dat

> class(dat) 
[1] "data.frame" 
> dat 
     Timestamp Open High Low Last Volume 
1 2016-09-27 02:00 165.50 165.58 165.46 165.47 2001 
2 2016-09-27 03:00 165.47 165.65 165.46 165.63 1345 
3 2016-09-27 04:00 165.64 165.92 165.59 165.91 1241 
4 2016-09-27 05:00 165.91 166.13 165.91 165.97 880 
5 2016-09-27 06:00 165.98 165.98 165.76 165.78 748 
あなたの例のように、データフレームであると仮定すると、すべてのことが必要とされている

は次のとおりです。

> dat <- as.xts(read.zoo(dat)) 

チェックclass

> class(dat) 
[1] "xts" "zoo" 

だから戻ってテキストファイルに行くためにあなたがしなければならないすべては `XTSオブジェクト」としてそれをインポートしている:

dat < - as.xts(read.zoo( "yourFileName.txt"、ファイルに必要な引数)

0

は大文字と小文字が区別されますか?私はquantmodのchartSeries(気づい

原因)

は次のように、彼らは下ケースである必要はあり

colnames(my_data) <- c('Open', 'High', 'Low', 'Close', 'Volume', 'Oi') 

が好きではありません。

> class(my_data) 
[1] "xts" "zoo" 
> tail(my_data) 
         open high  low close volume  oi 
2016-12-30 10:00:00 2233.50 2234.50 2228.00 2229.25 71515 743254 
2016-12-30 10:30:00 2229.25 2234.75 2228.75 2233.75 74937 818191 
2016-12-30 11:00:00 2233.75 2235.75 2229.25 2235.00 180772 998981 
2016-12-30 11:30:00 2234.75 2237.50 2233.75 2234.75 245717 1244735 
2016-12-30 12:00:00 2234.50 2235.25 2233.00 2233.75 6565 1251318 
2016-12-30 12:30:00 2233.50 2234.00 2233.25 2233.50 686 1252004 
関連する問題