【发布时间】:2012-07-12 00:56:13
【问题描述】:
's我是 R 的新手,对 ts 对象更是陌生。我尝试在数据帧 (df) 中的向量上使用包 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)
分别返回对象中的错误和:
checkData(R, method = "xts") 中的错误: 数据无法转换为时间序列。如果您尝试从具有一列的数据对象中传递名称,则应使用“data[rows, columns, drop = FALSE]”形式。行名应该有标准的日期格式,例如 '1985-03-15'
dput(df[,"PnL")=0.00994504296273811, 0.00156467225423175, 0.00976137048829638, etc.
dputdf[,"Date")=8036, 8037, 8040, 8041,etc.
软件包的帮助说该函数适用于矢量。我没有任何 NA,因此我不明白为什么它不起作用。
【问题讨论】:
-
dput的用法不是很好。dput的目的是以保留数据结构和属性等内容的方式共享数据,这可能(如在本例中)对数据的处理方式产生影响。您可以从错误中看到您的对象不是函数所期望的xts时间序列。
标签: r time-series xts