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

R语言基于公共列从另一数据框匹配提取指定字段的实现方法

实现方案

你要的是基于共同列person,保留whiskey_drinkage的全部行,匹配data2的sex和birthday字段,属于典型的左连接场景,两种常用实现方式如下:

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

# 以whiskey_drinkage为主表,匹配data2的对应字段
data3 <- merge(
  x = whiskey_drinkage,
  y = data2[, c("person", "sex", "birthday")],
  by = "person",
  all.x = TRUE
)

参数说明:

  • x:主表,即需要完整保留所有行的whiskey_drinkage
  • y:关联表,这里仅选取需要用到的3个字段,避免合并后出现多余列
  • by:两个表的共同关联列名
  • all.x = TRUE:强制保留x表的所有行,哪怕y表没有对应匹配记录(对应字段会填充NA),如果需要仅保留两个表都存在的person记录,可以删除这个参数,默认值为FALSE。

方法2:dplyr 实现(tidyverse生态常用语法)

# 先加载dplyr包,未安装的话先运行 install.packages("dplyr")
library(dplyr)

data3 <- whiskey_drinkage %>%
  left_join(
    data2 %>% select(person, sex, birthday),
    by = "person"
  )

如果需要仅保留两个表都存在的person记录,把left_join替换为inner_join即可。

以上两种方案都支持万行级别以上的数据集运算,完全满足你上千行数据的处理需求。


内容的提问来源于stack exchange,提问作者Badboybørge

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:27:02