示例数据: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
任何帮助将不胜感激,预先感谢您!
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)
| 归档时间: |
|
| 查看次数: |
497 次 |
| 最近记录: |