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

如何基于单列内两个值过滤行,用R的dplyr筛选同时有进出口记录的国家

R dplyr 筛选同时有进出口记录的国家所有行的解决方法

核心逻辑是按国家分组后,判断每个分组是否同时存在两类贸易记录,再保留符合条件的分组全部数据即可。


完整代码示例

1. 构造示例测试数据(你可以跳过这步直接用你自己的数据集)

df <- data.frame(
  Country = c("A", "B", "B", "C", "C", "C", "D"),
  Year = c(2001, 2001, 2004, 2003, 2005, 2006, 2007),
  Quantity = c(10,50,20,30,40,60,290),
  Description = c("Frozen", "Fresh", "Frozen", "Frozen", "Fresh", "Frozen", "Fresh"),
  `Import/Export` = c("Export", "Import", "Export", "Import", "Export", "Import", "Import"),
  check.names = FALSE
)

2. 核心处理代码

# 加载dplyr包
library(dplyr)

result <- df %>%
  # 按国家字段分组
  group_by(Country) %>%
  # 只保留同时包含Import、Export两类记录的国家的所有行
  filter(all(c("Import", "Export") %in% `Import/Export`)) %>%
  # 解除分组,避免影响后续数据操作
  ungroup()

补充说明

如果你的Import/Export列存在首尾空格、大小写不统一、拼写差异等问题,需要先对该列做清洗再执行上述逻辑,例如下方代码先去除列值的首尾空格:

result <- df %>%
  mutate(`Import/Export` = trimws(`Import/Export`)) %>%
  group_by(Country) %>%
  filter(all(c("Import", "Export") %in% `Import/Export`)) %>%
  ungroup()

运行上述代码后得到的result就是你需要的预期结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:51:00