CSVファイルからのデータを「XTS」オブジェクトに変換する
-
16-10-2019 - |
質問
次の形式で日付を持つCSVファイルを持っています:25-AUG-2004
QuantModパッケージで関数「Perion Return」を使用するために、「XTS」オブジェクトとして読みたいです。
関数に次のファイルを使用できますか?
Symbol Series Date Prev.Close Open.Price High.Price Low.Price
1 XXX EQ 25-Aug-2004 850.00 1198.70 1198.70 979.00
2 XXX EQ 26-Aug-2004 987.95 992.00 997.00 975.30
同じで私を案内してください。
解決
残念ながら、私は話すことができません ts
パートですが、これは日付を他の関数によって日付(または時間)として読み取ることができる適切な形式に変換する方法です。データをdata.frameにインポートすることができます(通常どおり)あなたがそれを見逃した場合はこちらを参照してください)。次に、変換できます Date
aに列 POSIXlt
(POSIXt
)使用するクラス strptime
働き。
nibha <- "25-Aug-2004" # this should be your imported column
lct <- Sys.getlocale("LC_TIME"); Sys.setlocale("LC_TIME", "C") #temporarily change locale to C if you happen go get NAs
strptime(nibha, format = "%d-%b-%Y")
Sys.setlocale("LC_TIME", lct) #revert back to your locale
他のヒント
これを試して。迷惑列を取り除き、Time Indexの形式を指定し、XTSに変換してDailyReturn関数を適用します。
Lines <- "Symbol Series Date Prev.Close Open.Price High.Price Low.Price
1 XXX EQ 25-Aug-2004 850.00 1198.70 1198.70 979.00
2 XXX EQ 26-Aug-2004 987.95 992.00 997.00 975.30"
library(quantmod) # this also pulls in xts & zoo
z <- read.zoo(textConnection(Lines), format = "%d-%b-%Y",
colClasses = rep(c(NA, "NULL", NA), c(1, 2, 5)))
x <- as.xts(z)
dailyReturn(x)
もちろん、 textConnection(Lines)
例を自己抑制したままにしておくためだけで、実際には次のようなものに置き換えられます "myfile.dat"
.
所属していません StackOverflow