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

1 r na dplyr

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

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

ifelse(is.na(week),na.locf(week)+1,week)
Run Code Online (Sandbox Code Playgroud)

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

所需输出:0 1 2 3 4 5 6 7 8 9 10

任何帮助将不胜感激,预先感谢您!

Ben*_*Ben 6

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

library(purrr)

accumulate(week, ~ifelse(is.na(.y), .x + 1, .y))
Run Code Online (Sandbox Code Playgroud)

输出

[1] 0 1 2 3 4 5 6 7 8 9
Run Code Online (Sandbox Code Playgroud)