存储函数返回R中的表(定量财务)

时间:2013-07-25 00:54:16

标签: r dataframe xts performanceanalytics

出于这个问题的目的,我想构建一个数据框或类似框架,以便能够“堆栈排名”并对从函数生成的各种指标进行排序。

我们来自Performance Analytics包:

  • 我有2001年3个指数的近距离回报:SPX,纳斯达克(CCMP)和EuroStoxx(SX5E)。
  • 我希望每个人获得95%的1天VaR,将它们放入一张桌子,然后将它们从高到低(或从低到高等)排序。

为了说明我的问题,我将使用table.DownsideRisk包中的Performance Analytics函数,而不只是调用VaR()

所以,我可以单独得到这些结果:

                              SPX.cc
Semi Deviation                 0.0095
Gain Deviation                 0.0096
Loss Deviation                 0.0102
Downside Deviation (MAR=210%)  0.0142
Downside Deviation (Rf=0%)     0.0094
Downside Deviation (0%)        0.0094
Maximum Drawdown               0.5678
Historical VaR (95%)          -0.0203
Historical ES (95%)           -0.0317
Modified VaR (95%)            -0.0193
Modified ES (95%)             -0.0273

或者我可以将它们全部放在xts对象中,然后运行table.DownsideRisk

                           SPX.cc CCMP.cc SX5E.cc
Semi Deviation                 0.0095  0.0114  0.0111
Gain Deviation                 0.0096  0.0117  0.0114
Loss Deviation                 0.0102  0.0116  0.0113
Downside Deviation (MAR=210%)  0.0142  0.0161  0.0161
Downside Deviation (Rf=0%)     0.0094  0.0113  0.0112
Downside Deviation (0%)        0.0094  0.0113  0.0112
Maximum Drawdown               0.5678  0.6103  0.6219
Historical VaR (95%)          -0.0203 -0.0260 -0.0249
Historical ES (95%)           -0.0317 -0.0370 -0.0372
Modified VaR (95%)            -0.0193 -0.0231 -0.0237
Modified ES (95%)             -0.0273 -0.0293 -0.0330

但是,假设我将个别示例作为lapplyfor循环运行,作为更广泛的分析程序的一部分 - 我想要做的是提取每个{{1}来自Historical VaR (95%)函数的输出的数字作为循环/应用函数在每个元素上运行,并将这些提取的值放在table.DownsideRisk的表中,然后对其进行排序表格沿着(从低到高)

.GlobalEnv()

我知道这对于数据框/表用户来说似乎是相当基础,但是非常感谢任何帮助。

干杯。

1 个答案:

答案 0 :(得分:2)

我不确定你对GlobalEnv的意图是什么,但这可能会有所帮助:

swapped = data.frame(t(xts))
ordered = swapped[with(swapped, order(Historical.VaR..95..)),]
result = subset(ordered, select=Historical.VaR..95..)