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

R语言中基于共享值将数据框列值复制到另一个数据框

在R中匹配两个数据框的状态码

首先先还原你的两个数据框(可直接复制运行测试):

# 包含状态码的数据框
df_status <- data.frame(
  taxon = c("Acer tom", "Carex geoff", "Carex bob", "Poa paul", "Juncus john"),
  status = c("LC", "EX", "LC", "LC", "WL"),
  stringsAsFactors = FALSE
)

# 仅含物种列表的数据框
df_taxa <- data.frame(
  taxon = c("Acer tom", "Carex clive", "Carex bob", "Poa paul", "Luzula luke"),
  stringsAsFactors = FALSE
)

方法1:Base R原生merge()函数

通过左连接保留第二个数据框的所有行,匹配第一个数据框的状态码,不匹配的自动填充NA:

result <- merge(df_taxa, df_status, by = "taxon", all.x = TRUE)

运行后得到的结果:

taxon status
1    Acer tom     LC
2 Carex clive   <NA>
3   Carex bob     LC
4    Poa paul     LC
5 Luzula luke   <NA>

方法2:tidyverse系列的dplyr::left_join()

如果你习惯使用tidyverse工具链,left_join()逻辑更直观:

library(dplyr)

result <- df_taxa %>% 
  left_join(df_status, by = "taxon")

输出结果与Base R方法完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 01:19:52