【发布时间】:2021-10-25 19:11:18
【问题描述】:
问题很简单:单变量数据的时间聚合。一个通用的例子:
x <- seq(from=as.Date('2000-01-01'),by='1 day',length.out=10^6)
y <- runif(10^6)
xy <- data.frame(x=x,y=y)
x.mean <- seq(from=as.Date('2000-01-15'),by='1 month',length.out=30000)
y.mean <- rep(NA,30000)
xy.mean <- data.frame(x=x.mean,y=y.mean)
for(i in 1:29999)
{
read.mean <- xy.mean[i,1] <= xy[,1] & xy[,1] < xy.mean[i+1,1]
xy.mean[i,2] <- mean(xy[read.mean,2])
}
我可以用几分钟、几年、几周或几十年来代替几天和几个月。我的代码可以工作,但是太慢了。我怎样才能加快这个过程?我知道 xy.mean[,1],我需要计算 xy.mean[,2]。
如果您建议使用包,我想了解包如何加快进程。
非常感谢!
【问题讨论】:
标签: r time-series