这可能听起来微不足道,但我想知道如何使用xts对象创建循环。例如,我有:
make<-rbind(mean(x['199901']),
mean(x['199902']),
mean(x['199903']),
mean(x['199904']),
mean(x['199905']),
mean(x['199906']))
x
是一个xts对象,我想从中提取每月的方法。
答案 0 :(得分:4)
我认为你应该使用period.apply
,这里有一个例子来计算每个月的平均值
zoo.data <- xts(rnorm(31)+10,as.Date(13514:13744,origin="1970-01-01"))
ep <- endpoints(zoo.data,'months')
period.apply(zoo.data, INDEX=ep, FUN=function(x) mean(x))
所以只在前6个月才能得到这个:
period.apply(zoo.data, INDEX=ep[1:6], FUN=function(x) mean(x))
还有一些这个函数的包装器,如:
apply.daily(x, FUN, ...)
apply.weekly(x, FUN, ...)
apply.monthly(x, FUN, ...)
apply.quarterly(x, FUN, ...)
apply.yearly(x, FUN, ...