目前我正在尝试在 R 中的向量中估算值。估算的条件是。
- 查找所有 NA 值
- 然后检查它们之前和之后是否有现有值
- 还要检查 NA 之后的值是否大于 NA 之前的值
- 如果满足条件,计算取前后值的平均值。
- 用推算值替换 NA 值
# example one
input_one = c(1,NA,3,4,NA,6,NA,NA)
# example two
input_two = c(NA,NA,3,4,5,6,NA,NA)
# example three
input_three = c(NA,NA,3,4,NA,6,NA,NA)
我开始编写代码来检测可以估算的值。但是我遇到了以下问题。
# incomplete function to detect the values
sapply(split(!is.na(input[c(rbind(which(is.na(c(input)))-1, which(is.na(c(input)))+1))]),
rep(1:(length(!is.na(input[c(which(is.na(c(input)))-1, which(is.na(c(input)))+1)]))/2), each = 2)), all)
然而,这仅检测到可能是可推算的 NA,并且仅适用于示例一。它是不完整的,不幸的是超级难以阅读和理解。
对此的任何帮助将不胜感激。