R:滚动标准偏差,起始点位于第一个指标,忽略NA
如何计算向量的滚动标准偏差,例如R:滚动标准偏差,起始点位于第一个指标,忽略NA,r,statistics,standard-deviation,R,Statistics,Standard Deviation,如何计算向量的滚动标准偏差,例如 它忽略了NA 始终计算第一个指数的滚动标准偏差 返回长度与输入向量相同的滚动标准偏差向量 ? 例如: set.seed(123) x <- c(NA, rnorm(5), NA, rnorm(5)) 您可以使用zoo中的rollappyr zoo::rollapplyr(x, seq_along(x), sd, na.rm = TRUE) #[1] NA NA 0.234 1.140 0.936 0.811 0.811 0.955 0.872
set.seed(123)
x <- c(NA, rnorm(5), NA, rnorm(5))
您可以使用
zoo
中的rollappyr
zoo::rollapplyr(x, seq_along(x), sd, na.rm = TRUE)
#[1] NA NA 0.234 1.140 0.936 0.811 0.811 0.955 0.872 1.009 0.993 0.954
或者以手动方式在base R中运行,这将比
zoo
方法慢
sapply(seq_along(x), function(i) sd(x[1:i], na.rm = TRUE))
您可以使用
zoo
中的rollappyr
zoo::rollapplyr(x, seq_along(x), sd, na.rm = TRUE)
#[1] NA NA 0.234 1.140 0.936 0.811 0.811 0.955 0.872 1.009 0.993 0.954
或者以手动方式在base R中运行,这将比
zoo
方法慢
sapply(seq_along(x), function(i) sd(x[1:i], na.rm = TRUE))
什么是窗口大小?如问题中所述,我希望总是从第一个索引开始进行滚动计算。感谢您添加示例。我已经更新了答案。第二个rollapplyr解决方案是
rollapplyr(x,length(x),sd,na.rm=TRUE,partial=TRUE)
什么是窗口大小?如问题中所述,我希望始终从第一个索引开始进行滚动计算。感谢您添加示例。我已经更新了答案。第二个rollapplyr解决方案是rollapplyr(x,长度(x),sd,na.rm=TRUE,partial=TRUE)