我想每年按降序(从最大值到最小值)订购我的时间序列。
第一次,我将“sort”功能应用于“apply”,这里有效但所有日期都是混合的。
{{1}}
为了分隔每年值的降序,我尝试将“sort”函数应用于“period.apply”,但它只给出了每年的第一个值(最大值)!
我的目标是获取所有数据,但每年都按降序排列。
{{1}}
确实,我想要这个:
{{1}}
你能用“period.apply”帮助我如何提高我的功能!
由于
答案 0 :(得分:3)
将sort
与period.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对象必须具有有序索引。