R如何在“period.apply”中使用“排序”功能?

时间:2018-02-01 13:38:21

标签: r function statistics apply xts

我想每年按降序(从最大值到最小值)订购我的时间序列。

  1. 第一次,我将“sort”功能应用于“apply”,这里有效但所有日期都是混合的。

    {{1}}
  2. 为了分隔每年值的降序,我尝试将“sort”函数应用于“period.apply”,但它只给出了每年的第一个值(最大值)!

    我的目标是获取所有数据,但每年都按降序排列。

    {{1}}

    确实,我想要这个:

    {{1}}

    你能用“period.apply”帮助我如何提高我的功能!

    由于

1 个答案:

答案 0 :(得分:3)

sortperiod.apply()一起使用不会仅返回第一个值。它返回一个xts,每年有一行,每个月有一列,列按降序排列。

R> period.apply(edhec_4yr[,1], ep, function(x) apply(x,2,sort,decreasing = TRUE))
             [,1]   [,2]   [,3]   [,4]   [,5]   [,6]
1997-12-31 0.0212 0.0193 0.0156 0.0134 0.0123 0.0122
1998-12-31 0.0269 0.0146 0.0145 0.0144 0.0126 0.0113
1999-12-31 0.0243 0.0219 0.0166 0.0140 0.0136 0.0124
2000-12-31 0.0267 0.0243 0.0227 0.0223 0.0179 0.0162
2001-12-31 0.0344 0.0182 0.0162 0.0157 0.0142 0.0117
             [,7]   [,8]    [,9]   [,10]   [,11]   [,12]
1997-12-31 0.0119 0.0100  0.0086  0.0078  0.0068  0.0000
1998-12-31 0.0060 0.0056 -0.0006 -0.0196 -0.0214 -0.0319
1999-12-31 0.0102 0.0101  0.0096  0.0082  0.0048  0.0045
2000-12-31 0.0149 0.0141  0.0093  0.0052 -0.0002 -0.0081
2001-12-31 0.0091 0.0080  0.0078  0.0033  0.0012 -0.0094

您想要的示例输出根本不能是xts / zoo对象,因为xts / zoo对象必须具有有序索引。