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

dplyr full_join合并后如何实现行值循环复用填充NA

实现方案

你需要的前序有效值填充NA的需求,可以直接使用tidyverse生态下tidyr包的fill()函数完成,该函数默认就是向下填充,匹配你要求的「复用前序行有效值直到该列出现下一个有效值」的逻辑。

完整可运行代码如下:

# 加载所需tidyverse包
library(dplyr)
library(tidyr)

set.seed(19)

# 构造模拟数据
x <- data.frame(time = rnorm(length(month.name))^2, month = month.name)
y <- data.frame(time = rnorm(length(LETTERS))^2, letters = LETTERS)

# 合并+排序+填充NA全流程
z2 <- full_join(x, y, by = "time") %>% 
  arrange(time) %>%
  # 仅填充month列,默认向下填充
  fill(month)

补充说明

  • 如果你需要填充多列,直接在fill()中传入对应列名即可,多个列名用逗号分隔:fill(col1, col2, col3)
  • 如果你需要填充所有列,可以用fill(everything())
  • 你可以通过.direction参数调整填充方向:可选值为down(默认,前向填充)、up(后向填充)、downup、updown,当前需求使用默认值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:24:04