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

在R中如何重复数据框列的已有数值序列填充全部NA行

R数据框循环重复序列填充NA实现方法

先构造示例测试数据,方便验证效果:

# 构造10行的示例数据框,up、low前3行为有效值,其余为NA
df <- data.frame(
  up = c(1, 3, 5, rep(NA, 7)),
  low = c(0, 2, 4, rep(NA, 7))
)

方法1:基础R实现(无需加载额外包)

# 提取两列的有效非NA行,硬编码前3行的写法
valid_df <- df[1:3, c("up", "low")]
# 自动重复有效序列,生成和原数据框行数一致的填充数据
fill_df <- valid_df[rep(seq_len(nrow(valid_df)), length.out = nrow(df)), ]
# 替换原数据框的对应列
df[, c("up", "low")] <- fill_df

如果有效值不固定在前3行,可以用下面的代码自动识别有效行,不需要硬编码行数:

valid_df <- df[complete.cases(df[, c("up", "low")]), ]

方法2:tidyverse风格实现

如果你习惯使用dplyr,可以用更简洁的写法:

library(dplyr)

df <- df %>%
  mutate(
    # 自动提取当前列的非NA值,循环重复到整列长度
    up = rep(na.omit(up), length.out = n()),
    low = rep(na.omit(low), length.out = n())
  )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:15:06