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

如何在R中实现类VLOOKUP操作并筛选main.df数据行

在R中实现类VLOOKUP关联并过滤行

先确认数据集

首先还原你提供的两个数据集:

# 构建main.df
first_column <- c("value_1", "value_2", "value_3")
second_column <- c("keep", "remove", "remove")
main.df <- data.frame(first_column, second_column)

# 构建vlookupdf
first_column <- c("value_1", "value_2", "value_3")
column1  <- c("si", "no", "na")
column2 <-  c(5, 2, 3)
vlookupdf  <- data.frame(first_column, column1, column2)

方法1:Base R 原生实现

通过merge()完成表关联,再过滤目标行:

# 按first_column关联两个表
merged_data <- merge(main.df, vlookupdf, by = "first_column")

# 过滤掉column1为"no"或"na"的行,保留原main.df的列
final_result <- merged_data[!merged_data$column1 %in% c("no", "na"), c("first_column", "second_column")]

# 查看结果
final_result

输出结果:

first_column second_column
1      value_1          keep

方法2:tidyverse/dplyr 语法实现

如果习惯使用tidyverse生态,步骤更直观:

library(dplyr)

final_result <- main.df %>%
  inner_join(vlookupdf, by = "first_column") %>%  # 关联两个表
  filter(!column1 %in% c("no", "na")) %>%        # 过滤指定值的行
  select(first_column, second_column)            # 保留原main.df的列

# 查看结果
final_result

两种方法的核心逻辑一致:先通过first_column完成类VLOOKUP的关联匹配,再筛选出符合要求的行,最后保留原数据集的列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 20:45:01