为了这个问题的目的,我想构建一个数据框或类似的能够“堆栈排序”和排序从函数生成的各种指标。存储函数返回表R(quant finance)
让我们从Performance Analytics
包的示例:
- 我从2001年3个指数收盘闭回报:SPX,纳斯达克(CCMP)和EuroStoxx(SX5E)。
- 我想获得95%1天的风险价值为每个这些,将它们放在一张桌子,然后从高到低(或从低到高等)排序。
为了说明我的问题,我会用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
但是,让我们说我跑了作为更广泛的分析程序的一部分,作为lapply
或for
循环的个别示例 - 我想要做的是从的输出中提取每个Historical VaR (95%)
数字功能作为循环/应用功能的每个元素上运行,并把这些提取的值在表中.GlobalEnv()
然后排序沿的(低到高)的线
Historical VaR (95%)
SPX.ccl -.0203
SX5E.ccl -.0249
CCMP.ccl -.0260
我知道这一点,表对于数据框架/表格用户来说似乎相当基本,但是非常感谢任何帮助。
干杯。
我downvoted这个问题,因为看完后我依然不知道您的具体目标是什么,它与性能分析软件包的关系。赏金并不能解决这个问题。 – Roland
罗兰,这不是PA包装;它只是使用PA作为例证,我认为它通常适用于社区。我所要做的就是'返回'一组返回值,并且 - 在返回每组结果时 - 从该组结果中提取特定值,然后将提取的结果放入data.frame/table中我可以在循环完成运行后查看/排序提取的结果。我希望澄清。 –
我也不知道你在努力完成什么,或者这里需要什么。也许澄清这个问题会给你更多的答案 –