快速提问:有人会帮忙解释为什么我得到了滚动中位数输出的所有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来实现。有谁知道如何做到这一点?谢谢!