2017-03-09 10 views
1

親愛なるスタックオーバーフローのコミュニティは、私がperiodReturnのquantmod機能を使用して、資産のリターンを計算しようとしていますHLCtest)を与える:RコードperiodReturn機能の使用(quantmodパッケージ)

##  Date   High  low  Close 
##1 1991-01-01 GMT 1517.93 1517.93 1517.93 
##2 1991-01-02 GMT 1509.58 1487.96 1505.10 
##3 1991-01-03 GMT 1540.22 1500.54 1539.50 
##4 1991-01-04 GMT 1552.15 1533.77 1547.66 
##5 1991-01-07 GMT 1524.38 1501.26 1507.87 
##6 1991-01-08 GMT 1507.37 1474.79 1500.24 

> yearlyReturn(HLCtest, subset=NULL, type='arithmetic', leading=TRUE) 

私は、次のエラーメッセージが出ます:

> Error in try.xts(x) : 
    Error in as.POSIXlt.character(x, tz, ...) : character string is not in a standard unambiguous format 

を私が使用:

> strftime(HLCtest$Date, format ="", tz="GMT", usetz = TRUE) 

日付形式がISO8601標準であることを確認します。

また、 > is.HLC(HLCtest)オブジェクトが "High Low Close"オブジェクトであることを確認してください。

誰かが私にこのエラーメッセージが表示され、修正する方法を教えてください。

+1

いくつかのサンプルデータ、すなわち「ヘッド(HLCテスト)」 – rbm

+0

を表示してください。 Tks rbm。 – JoeBadAss

+0

OK、これでは不十分です - 再現可能な例を表示できますか?データを取得していますか?あなたは 'getSymbols'を介してデータをダウンロードしていると推測しているか、またはデータを' dput'する必要があります(少なくとも最初の数行は – rbm

答えて

2

yearlyReturnあなたのdata.frameをxtsオブジェクトに変換する方法はわかりません。これは、try.xtsを使用してxtsオブジェクトに変換しようとしており、try.xtsはdata.frame行の名前に日付が含まれていると想定しているためです。

最も簡単な解決策は、xtsオブジェクトを自分で作成し、それをyearlyReturnに渡すことです。

# sample data 
y <- structure(list(Date = structure(c(7670, 7671, 7672, 7673, 7676, 
7677), class = "Date"), High = c(1517.93, 1509.58, 1540.22, 1552.15, 
1524.38, 1507.37), low = c(1517.93, 1487.96, 1500.54, 1533.77, 
1501.26, 1474.79), Close = c(1517.93, 1505.1, 1539.5, 1547.66, 
1507.87, 1500.24)), .Names = c("Date", "High", "low", "Close"), 
row.names = c(NA, -6L), class = "data.frame") 
# make xts object 
x <- xts(y[,-1], y[,1]) 
# call *lyReturn 
dailyReturn(x) 
#   daily.returns 
# 1991-01-01 0.000000000 
# 1991-01-02 -0.005500912 
# 1991-01-03 0.020297036 
# 1991-01-04 0.007745647 
# 1991-01-07 -0.017891312 
# 1991-01-08 -0.011158635 
+0

ありがとう、それは魅力的なように機能します!そうです、periodReturn関数はデータを期待しています。フレームの行の名前に日付を含めることができます。 – JoeBadAss

+0

喜んで、そしてStackoverflowへようこそ。私は誰かが私の質問に答えるとしますか?](http://stackoverflow.com/help/someone-answers)。 –

関連する問題