使用xts创建循环

时间:2013-03-13 11:45:59

标签: r loops xts

这可能听起来微不足道,但我想知道如何使用xts对象创建循环。例如,我有:

make<-rbind(mean(x['199901']),
        mean(x['199902']),
        mean(x['199903']),
        mean(x['199904']),
        mean(x['199905']),
        mean(x['199906']))

x是一个xts对象,我想从中提取每月的方法。

1 个答案:

答案 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, ...