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

如何合并更新两个列名相同的R数据框,实现原有列值的补全更新

解决方案

最简洁的方案是直接使用dplyr内置的rows_patch()函数,这是官方专门为「用新表数据补全原表缺失值」场景设计的功能,无需手动处理多列合并逻辑,一行代码即可完成操作:

library(dplyr)
# 直接补全原表的email列缺失值
email_df_updated <- email_df %>%
  rows_patch(new_infomation, by = "id")

运行后直接输出你需要的10行2列结果:原表中非缺失的邮箱值不会被修改,匹配到ID的NA值会自动被新表的邮箱填充,全程不会生成多余的中间列。


如果你使用的dplyr版本低于1.0.0,没有内置rows_patch()函数,可以用coalesce()简化你原来的写法,比ifelse()逻辑更简洁、可读性更高:

email_df_updated <- left_join(email_df, new_infomation, by = "id") %>%
  mutate(email = coalesce(email.x, email.y)) %>%
  select(id, email)

coalesce()函数会按参数顺序返回第一个非NA的值,自动用新表的email.y补全原表email.x的缺失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:15:04