님의 새 소개입니다. 필자는 PerformanceAnalytics 패키지를 데이터 프레임 (df)의 벡터에서 사용하려고합니다. 오류 : order.by에 적절한 시간 기반 개체가 필요합니다. PerformanceAnalytics
나는 다음과 같은 데이터 프레임이 있습니다row.names Date PnL
1 22 1992-01-02 -1.751133e-02
2 23 1992-01-03 -1.586737e-02
3 24 1992-01-06 -2.898982e-02
내가 시도 :
TestS=SharpeRatio.annualized(df[,"PnL"],Rf=0,scale=252)
TestS=SharpeRatio.annualized(as.ts(df[,"PnL"]),Rf=0,scale=252)
그것은 객체에 각각 오류를 반환
과 :
Error in checkData(R, method = "xts") : The data cannot be converted into a time series. If you are trying to pass in names from a data object with one column, you should use the form 'data[rows, columns, drop = FALSE]'. Rownames should have standard date formats, such as '1985-03-15'
dput(df[,"PnL")=0.00994504296273811, 0.00156467225423175, 0.00976137048829638, etc.
dputdf[,"Date")=8036, 8037, 8040, 8041,etc.
패키지의 도움말이 함수가 작동 함을 알립니다. 벡터에. 나는 NA가 없기 때문에 왜 작동하지 않는지 알지 못합니다.
'dput'을 사용하는 것은 그리 좋지 않습니다. 'dput'의 목적은 데이터의 구조와 속성을 보존하는 방식으로 데이터를 공유하는 것입니다.이 경우 데이터가 처리되는 방식에 영향을 줄 수 있습니다. 에러로부터 여러분의 객체는 함수가 기대하는'xts' 시계열이 아니라는 것을 알 수 있습니다. – A5C1D2H2I1M1N2O1R2T1