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

如何使用另一个dataframe的信息更新当前dataframe的指定列值

R实现DataFrame按匹配ID更新指定字段

基础R实现(无需加载第三方包)

直接通过match函数匹配Bird_ID的位置,对对应位置的Sex字段赋值即可:

# 匹配df2的Bird_ID在df1中的位置,直接更新对应Sex值
df1$Sex[match(df2$Bird_ID, df1$Bird_ID)] <- df2$Seen_sex

运行后df1的输出结果为:

Bird_ID    Sex
1       1   Male
2       2 Female
3       3   Male
4       4   Male
5       5   Male
6       6 Female

dplyr实现(适合批量更新场景)

如果你已经在使用tidyverse生态,用rows_update函数实现更规范,就算df2包含多条待更新记录也能直接批量处理:

library(dplyr)

df1 <- df1 %>%
  # 先把df2的Seen_sex列名改成和df1要更新的列名一致,再按Bird_ID匹配更新
  rows_update(df2 %>% rename(Sex = Seen_sex), by = "Bird_ID")

注意:如果df2中存在df1没有的Bird_ID,rows_update会默认抛出错误,避免非法数据插入,符合主数据更新的安全要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:57:03