我想在整个时间序列中量化每年超过常数值(例如> 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中改善长度函数的条件!
提前感谢您的帮助
答案 0 :(得分:1)
你必须提供一个函数作为apply
的第三个参数,例如像这样:
period.apply(edhec_4yr,
INDEX = ep,
function(x) apply(x,
2,
function(y) length(which(y>0.005))))