R 和 Zoo:数据参差不齐的移动平均线?
R and Zoo: moving average with ragged data?
我想计算移动平均数以用已知条目 3、5 和 1 填充 NA 条目。如何使用 R 中的 zoo 包执行此操作?
输入
> library(zoo)
> hh <- c(NA, NA, NA, 3, NA, 5, NA, 1, NA, NA, NA, NA)
失败
Fail with rollmean
> rollmean(hh,na.omit=TRUE,k=1)
[1] NA NA NA NA NA NA NA NA NA NA NA NA
> rollmean(hh,4, na.omit=TRUE,k=1)
[1] NA NA NA NA NA NA NA NA NA NA NA NA
> rollmean(hh,4, na.rm=TRUE,k=1)
[1] NA NA NA NA NA NA NA NA NA NA NA NA
Fail with Rollapply
> rollapply(hh, 4, function(x) mean(x))
[1] NA NA NA NA NA NA NA NA NA
预期输出类似于
> COMMAND(hh, movingAverageNumber, function(x) mean(x))
[1] 3 3.3 3.4 3 4 5 3 1 2 1.5 1.2 1 0.8
相关
- Using rollmean when there are missing values (NA)
假设您想要滚动 mean
四个值(您将 k=1
传递给 rollmean
),您需要告诉 mean
删除 NA
library(zoo)
rollapply(hh, 4, function(x) mean(x, na.rm=TRUE))
[1] 3 3 4 4 3 3 1 1 NaN
虽然这 returns 与您想要的输出有所不同。如果你想要不同的东西,你需要进一步解释。
取决于您要查找的内容,那么:
rollapply(hh, 5, mean, na.rm = TRUE)
[1] 3 4 4 3 3 3 1 1
或
rollapply(hh, 4, mean, na.rm = TRUE)
[1] 3 3 4 4 3 3 1 1 NaN
我想计算移动平均数以用已知条目 3、5 和 1 填充 NA 条目。如何使用 R 中的 zoo 包执行此操作?
输入
> library(zoo)
> hh <- c(NA, NA, NA, 3, NA, 5, NA, 1, NA, NA, NA, NA)
失败
Fail with rollmean
> rollmean(hh,na.omit=TRUE,k=1) [1] NA NA NA NA NA NA NA NA NA NA NA NA > rollmean(hh,4, na.omit=TRUE,k=1) [1] NA NA NA NA NA NA NA NA NA NA NA NA > rollmean(hh,4, na.rm=TRUE,k=1) [1] NA NA NA NA NA NA NA NA NA NA NA NA
Fail with Rollapply
> rollapply(hh, 4, function(x) mean(x)) [1] NA NA NA NA NA NA NA NA NA
预期输出类似于
> COMMAND(hh, movingAverageNumber, function(x) mean(x)) [1] 3 3.3 3.4 3 4 5 3 1 2 1.5 1.2 1 0.8
相关
- Using rollmean when there are missing values (NA)
假设您想要滚动 mean
四个值(您将 k=1
传递给 rollmean
),您需要告诉 mean
删除 NA
library(zoo)
rollapply(hh, 4, function(x) mean(x, na.rm=TRUE))
[1] 3 3 4 4 3 3 1 1 NaN
虽然这 returns 与您想要的输出有所不同。如果你想要不同的东西,你需要进一步解释。
取决于您要查找的内容,那么:
rollapply(hh, 5, mean, na.rm = TRUE)
[1] 3 4 4 3 3 3 1 1
或
rollapply(hh, 4, mean, na.rm = TRUE)
[1] 3 3 4 4 3 3 1 1 NaN