【发布时间】:2018-07-11 20:36:39
【问题描述】:
我想按每年的降序(从最大值到最小值)对我的时间序列进行排序。
-
第一次,我将“排序”功能与“应用”一起应用,在这里它可以工作,但所有日期都是混合的。
library(xts) library(PerformanceAnalytics) data(edhec) head(edhec) edhec_4yr <- edhec["1997/2001"] ep <- endpoints(edhec_4yr, "year") # "sort" function with apply Ok s.ap=apply(edhec_4yr[,1],2,sort,decreasing = TRUE) s.ap
为了分隔每年的值的降序,我尝试使用“period.apply”应用“排序”函数,但它只给出每年的第一个值(最大值)!
我的目标是获取所有数据,但只是按每年的降序排列。
> #"sort" with period.apply (Juste the first value for each year!
> Why!!!!)
>
> s.per.ap=period.apply(edhec_4yr[,1], INDEX = ep, function(x) apply(x,2,sort,decreasing = TRUE))
> s.per.ap
确实,我想要这个:
Convertible Arbitrage
1997-06 0.0212
1997-07 0.0193
1997-05 0.0156
1997-08 0.0134
1997-02 0.0123
1997-09 0.0122
1997-01 0.0119
1997-10 0.0100
1997-04 0.0086
1997-03 0.0078
1997-12 0.0068
1997-11 0.0000
1998-11 0.0269
1998-02 0.0146
1998-01 0.0145
1998-03 0.0144
1998-04 0.0126
1998-12 0.0113
1998-07 0.0060
1998-05 0.0056
1998-06 -0.0006
1998-09 -0.0196
1998-10 -0.0214
1998-08 -0.0319
......
你能帮我如何用“period.apply”改进我的功能吗!
谢谢
【问题讨论】:
-
最好能解释一下为什么要这样做。否则这很可能是XY problem。
标签: r function statistics apply xts