如何用 R 中数字列中的序列填充缺失的 NA

How to fill missing NA's with sequence in numeric column in R

示例数据:week = c(0,1,2,3,4,NA,6,NA,NA,NA,10)

我目前使用的解决方案是:

ifelse(is.na(week),na.locf(week)+1,week)

但它输出:0 1 2 3 4 5 6 7 7 7 10

期望输出:0 1 2 3 4 5 6 7 8 9 10

任何帮助将不胜感激,提前致谢!

使用 purrr 您可以尝试以下操作。如果缺少 (NA) 则增加 1,否则,保留该值。

library(purrr)

accumulate(week, ~ifelse(is.na(.y), .x + 1, .y))

输出

[1] 0 1 2 3 4 5 6 7 8 9

zoo 包有一个特定用途的函数:na.spline

week = c(0,1,2,3,4,NA,6,NA,NA,NA,10)

zoo::na.spline(week)
# [1]  0  1  2  3  4  5  6  7  8  9 10