私はRが初めてで、使い始めたばかりです。現在、quantmod パッケージを試しています。
quantmod パッケージは、私がやりたいことのほとんどを行っているようですが、getSymbols() 関数を使用してデータを R にフェッチしたくありません。代わりに、ローカル ディスクに csv ファイルとして保存されている独自のデータを使用したい.
quantmod で使用するために、CSV ファイルからデータを丸呑みできるようにしたいと考えています。quantmodで使用する CSV ファイルを読み取る方法を示すこの記事にたどり着きましたが、少なくとも 2 つの理由で気に入りません。
quantmod にロードする前に、新しい (再フォーマットされた) CSV ファイルをディスクに書き込みます。Rを使用して、メモリ内で必要な変更を行うことをお勧めします。
CSV ファイルには列ヘッダーがあります。データに列ヘッダーがありません。代わりに、フィールドは所定の固定列位置にあります (Yahoo Finance データ テーブルで採用されている「標準」形式に一致します)。
getSymbols()関数によって返されるデータ型を解決できませんでした。データ フレームを返すことを期待していましたが、そのクラスを確認したところ、文字ベクトルとして識別されました。これは非常に驚くべきことでした (率直に言って、含まれているデータから barChart をプロットできるので、信じられません)。変数で):
yhoo <- getSymbols("YHOO",src="google")
class(yhoo)
[1] "character"
> yhoo
[1] "YHOO"
CSV ファイルからデータを読み取り、quantmod で使用する R オブジェクト (データ フレーム?) として返す小さな R 関数 (おそらく read.csv のラッパー) を作成する方法を誰かが示すことができれば幸いです。
私がやりたいことを説明する擬似コードを次に示します。
# in case I need some funcs here for creating data type returned by function
library(quantmod)
loadCSVDataFile <- function(full_pathname){
csvdata <- read.csv(full_pathname, header=FALSE,sep=",")
dates <- csvdata[,1]
op <- csvdata[,2]
hi <- csvdata[,3]
lo <- csvdata[,4]
cl <- csvdata[,5]
vol <- csvdata[,6]
oi <- csvdata[,7]
# Now combine columns into a data type that matches that returned by the
# getSymbols() ....
# return(dataset)
}
[[アップデート]]
これまでに与えられた答えを使用して、STLLがこれを機能させることができませんでした...:
> gbpusd <- as.xts(read.zoo('/path/to/gbpusd.csv', header=FALSE))
> class (gbpusd)
[1] "xts" "zoo"
> barChart(gbpusd)
Error in `[.xts`(x, xsubset) : subscript out of bounds
> gbpusd2 <- getSymbols.csv('gbpusd',,'/path/to/')
Error in missing(verbose) : 'missing' can only be used for arguments
>
> gbpusd2 <- getSymbols.csv('gbpusd',.GlobalEnv,'/path/to/')
Error in missing(verbose) : 'missing' can only be used for arguments
>
>
> gbpusd2 <- getSymbols.csv('gbpusd','.GlobalEnv','/path/to/')
Error in missing(verbose) : 'missing' can only be used for arguments
>
> gbpusd2 <- getSymbols.csv('gbpusd',env,'/path/to/')
Error in missing(verbose) : 'missing' can only be used for arguments
私は何を間違っていますか?