我有一个xts
对象,我正在尝试使用period.apply
函数,该函数会为每个非重叠句点返回多个值。例如:我运行回归并希望返回每个非重叠时段的残差,因此我的函数返回该时段的所有日期以及每个特定日期的残差。目前似乎xts
不支持此行为。它是否正确?有工作吗?
> df <- data.frame(x=rnorm(31)+10, y=rnorm(31)+10)
> xts.data <- xts(df, order.by=as.Date(13514:(13544),origin="1970-01-01"))
> f <- function(d) {as.numeric(coredata(d[,"x"]))}
> period.apply(xts.data, INDEX=endpoints(xts.data,"weeks"), FUN=f)
Error in coredata.xts(x) : currently unsupported data type
答案 0 :(得分:3)
我刚刚想到,问题很可能是每个非重叠时段的观测数量都不相同,因此无法轻易创建类似矩阵的结构。
使用类似的东西,并注意每个列表元素的长度不同:
lapply(split(xts.data,"weeks"), f)
说明period.apply
每个句点如何返回多个列:
period.apply(xts.data, endpoints(xts.data,"weeks"), range)
period.apply(xts.data, endpoints(xts.data,"weeks"), colMeans)