R如何在句点使用“有条件的长度”功能?

时间:2018-01-11 10:59:59

标签: r function statistics apply xts

我想在整个时间序列中量化每年超过常数值(例如> 0.005)的天数。

我用这个例子来解释我的问题:

library(xts) 
library(PerformanceAnalytics)

data(edhec) 
head(edhec)

edhec_4yr <- edhec["1997/2001"] 
ep <- endpoints(edhec_4yr, "months")

# mean 
period.apply(edhec_4yr, INDEX = ep, function(x) apply(x,2,mean))

# Length

period.apply(edhec_4yr, INDEX = ep, function(x) apply(x,2, length))

# Length with condition (error!!)

period.apply(edhec_4yr, INDEX = ep, function(x) apply(x,2, 
length(which(x>0.005))))

要计算年平均值,我可以使用函数“长度”来估算它的年度数,但是如果我添加一个条件 长度((x> 0.005))))它不起作用!

你是否有想法如何在period.apply中改善长度函数的条件!

提前感谢您的帮助

1 个答案:

答案 0 :(得分:1)

你必须提供一个函数作为apply的第三个参数,例如像这样:

period.apply(edhec_4yr, 
             INDEX = ep, 
             function(x) apply(x,
                               2, 
                               function(y) length(which(y>0.005))))