如果值在序列中仅出现一次,如何估算值

问题描述 投票:0回答:1

基本上,当值仅在一次(在本例中是一个月)不同时,我想使用 R 进行插值。假设我的数据如下所示:

    df <- data.frame(id = c(1,1,1,1,1,1,2,2,2,2,2,2), 
      month = c(1,2,3,4,5,6,1,2,3,4,5,6), 
      status = c('a', 'a', 'b', 'a', 'b', 'b', 'a', 'a', 'b', 'b', 'b', 'b'))

当状态在序列中仅出现一次时,如何在 ids 中进行插值。在我的示例中,我想将第一个 b(第 3 行)更改为 a,但其他都不需要更改。

r interpolation panel
1个回答
0
投票

我不确定你是否想玩滑动窗口来用其邻居替换异常值。如果是这样,也许下面的代码应该适合您的目标

x <- c("a", "a", "b", "a", "b", "a", "b", "b")
for (i in 2:(length(x) - 1)) {
  if (x[i + 1] == x[i - 1] & x[i] != x[i + 1]) {
    x[i] <- x[i + 1]
  }
}

那么你将获得

> x
[1] "a" "a" "a" "a" "a" "a" "b" "b"
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.