use*_*907 6 r time-series zoo na
我的数据集如下所示(我们称之为“a”):
date value
2013-01-01 12.2
2013-01-02 NA
2013-01-03 NA
2013-01-04 16.8
2013-01-05 10.1
2013-01-06 NA
2013-01-07 12.0
Run Code Online (Sandbox Code Playgroud)
我想NA用最接近的环境值(该系列中的上一个和下一个值)的平均值来替换 。
我尝试了以下操作,但我对输出不满意......
miss.val = which(is.na(a$value))
library(zoo)
z = zoo(a$value, a$date)
z.corr = na.approx(z)
z.corr[(miss.val - 1):(miss.val + 1), ]
Run Code Online (Sandbox Code Playgroud)
使用na.locf包中的(最后观察结转)zoo:
R> library("zoo")
R> x <- c(12.2, NA, NA, 16.8, 10.1, NA, 12.0)
R> (na.locf(x) + rev(na.locf(rev(x))))/2
[1] 12.20 14.50 14.50 16.80 10.10 11.05 12.00
Run Code Online (Sandbox Code Playgroud)
x(如果第一个或最后一个元素是,则不起作用NA)
| 归档时间: |
|
| 查看次数: |
3688 次 |
| 最近记录: |