我希望在R中对向量的逐步子集应用函数。我查看了相关资料,发现apply及其相关函数并不完全符合要求,而rollapply仅适用于zoo/ts对象,而不能直接使用于向量。
vapply <- function(x, n, FUN=sd) {
v <- c(rep(NA, length(x)))
for (i in n:length(x) ) {
v[i] <- FUN(x[(i-n+1):i])
}
return(v)
}
有没有类似的内置功能?是否有更好的方法实现?我试图避免依赖第三方库,因为代码需要独立分发。
vapply
,因为这已经是一个广泛使用的函数名称(快速向量应用)。 - Andrierollapply
在原子向量上的使用还是没问题的,只不过它会先将其转换为zoo
对象。所以,这仍然违反了您避免依赖项的要求。 - joran