You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言填充data.frame列NA值延续数值序列 优先tidyverse方案

R 数据框NA值连续序列填充解决方案(tidyverse优先)

实现代码

首先加载tidyverse套件:

library(tidyverse)

核心处理逻辑:

df_filled <- df %>%
  mutate(
    B = replace(
      x = B,
      list = is.na(B),
      values = last(na.omit(B)) + seq_len(sum(is.na(B)))
    )
  )

逻辑说明

  • 用na.omit(B)提取B列所有非空值,再用last()取到序列末尾的有效值(本示例中为5)
  • sum(is.na(B))统计B列NA值的总个数,用seq_len()生成从1到NA总个数的连续增量序列
  • 用replace()函数将所有NA位置的取值,替换为「末尾有效值+对应增量」,即可得到延续的连续序列
    运行后输出结果和需求一致:
df_filled
   A B
1  a 1
2  b 1
3  c 2
4  d 2
5  e 3
6  f 4
7  g 5
8  h 6
9  i 7
10 j 8

适配说明

上述代码仅适配当前需求中NA出现在序列末尾、需要延续末尾连续+1序列的场景,如果你的数值序列不是严格每次+1的连续值,或者NA出现在序列中间,调整增量计算逻辑即可。

内容的提问来源于stack exchange,提问作者enricoferrero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 10:09:01