1

快速提问:谁能帮助解释为什么我得到所有 NA 的滚动中值输出。我将 na.rm 设置为 TRUE 但这似乎没有帮助。谢谢!

library(RcppRoll)
input <- c(1:10, rep(NA, 190))
output <- roll_median(input, n = 120, fill = NA, align = 'right', na.rm = TRUE)

作为参考,我希望正确的输出是:

my.expectation <- rep(NA, 119)
for(i in 1:81){
  my.expectation <- c(my.expectation, median(input[i:(i + 119)], na.rm = TRUE))
}

我知道如何用 rollapply 做到这一点:

library(zoo)
median.n <- function(x){median(x, na.rm = TRUE)}
rollapplyr(data = input, width = 120, FUN = median.n, fill = NA)

但是出于速度的原因(我正在处理具有数千万行的数据框),我希望使用 roll_median 来完成。有谁知道如何做到这一点?谢谢!

4

0 回答 0