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

在R中如何筛选对应Group列包含多组的ID数据?

筛选同时属于多组的ID对应数据

你之前的代码错误在于要求同一行的Group列同时等于A和B,这在单一行里不可能实现,所以返回空结果。正确的思路是先找出那些ID——它们的Group列中同时包含A和B两个分组,再提取这些ID对应的所有行。

下面是两种可用的dplyr解决方案:

方法一:分组后直接筛选

library(dplyr)

df %>%
  group_by(ID) %>%
  filter(all(c("A", "B") %in% Group)) %>%
  ungroup()
  • group_by(ID):按ID对数据分组
  • all(c("A", "B") %in% Group):检查当前ID对应的所有Group值是否同时包含A和B
  • ungroup():取消分组,返回常规数据框

方法二:先提取目标ID再筛选

# 第一步:获取同时包含A、B组的ID
target_ids <- df %>%
  group_by(ID) %>%
  summarise(has_both = all(c("A", "B") %in% Group)) %>%
  filter(has_both) %>%
  pull(ID)

# 第二步:筛选这些ID对应的所有行
df %>%
  filter(ID %in% target_ids)

这种方法先单独提取符合条件的ID列表,再用该列表筛选原数据,逻辑更直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 11:15:36