繁体   English   中英

将函数返回值存储在R中的表中(数量财务)

[英]Storing function returns in a table in R (quant finance)

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

让我们以Performance Analytics包为例:

  • 我有2001年的3个指数的收盘价:SPX,纳斯达克(CCMP)和EuroStoxx(SX5E)。
  • 我想获得每种产品的95%1day VaR,将它们放入表格中,然后从高到低(或从低到高等)进行排序。

为了说明我的问题,我将使用Performance Analytics包中的table.DownsideRisk函数,而不仅仅是调用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循环作为一个更广泛的分析计划的一部分-我想要做的是提取每一个的Historical VaR (95%)从输出数字table.DownsideRisk函数在每个元素上运行循环/应用函数 ,并将提取的值放在.GlobalEnv()中的表中,然后按照(从低到高)的.GlobalEnv()对该表进行排序

           Historical VaR (95%)
SPX.ccl    -.0203
SX5E.ccl   -.0249
CCMP.ccl   -.0260

我知道这对于数据框/表用户来说似乎很基础,但我们非常感谢您的协助。

干杯。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM