【问题标题】:Replacing multiple NA's with one mean用一种平均值替换多个 NA
【发布时间】:2019-03-06 09:51:00
【问题描述】:

我有以下类型的向量:

x <- c(2,5,1,5,NA,NA,NA,9,23,1,NA,NA,NA,5,2)

有没有办法用 NA 之前和之后的值的平均值替换我的 NA?就像对它们进行插值,但只有一个值!

*更新:这种情况下的预期输出为c(2,5,1,5,7,7,7,9,23,1,3,3,3,5,2)

非常感谢。

【问题讨论】:

    标签: r vector replace mean na


    【解决方案1】:

    我们可以从zoo使用na.approx

    library(zoo)
    na.approx(x, method = "constant", f = .5)
    # [1]  2  5  1  5  7  7  7  9 23  1  3  3  3  5  2
    

    关于f的论点,来自?approxfun

    for method = "constant" 介于 0 和 1 之间的数字,表示左右连续阶跃函数之间的折衷。如果 y0 和 y1 是点左侧和右侧的值,则如果 f == 0,则值为 y0,如果 f == 1,则值为 y1,中间值为 y0*(1-f)+y1*f。这样,结果对于 f == 0 是右连续的,对于 f == 1 是左连续的,即使对于非有限 y 值也是如此

    【讨论】:

      猜你喜欢
      • 2016-10-03
      • 1970-01-01
      • 2016-03-11
      • 1970-01-01
      • 2016-03-24
      • 2020-08-25
      • 1970-01-01
      • 2020-07-14
      • 1970-01-01
      相关资源
      最近更新 更多