我有2个数值向量,一个存储值来计算从,滚动窗口的另一长度最大计算滚动的基础上那些最大值。以下是一些示例代码。通常我试图加快system.time内的代码。是否有一些准备好的功能或矢量化的方式来做同样的事情?什么是R上的最快的方法来计算具有可变滚动窗口大小滚动最大?
a <- rep(1:5,20000)
set.seed(123)
b <- rep(sample(1:50),2000)
system.time({
out <- vector(mode='numeric', length=NROW(a))
for(i in seq(a)) {
if (i-b[i]>=0) out[i] <- max(a[(i-b[i]+1):i])
else out[i] <- NA
}
})
+1问得好。这是一个有趣的尝试和优化的问题! – 2013-04-26 13:29:56