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

R语言:按PIT和Presence分组筛选DataFrame指定行

R中DataFrame分组筛选解决方案

需求说明

按PIT和Presence列分组,执行以下筛选规则:

  • 分组内存在check=1的行时,仅保留所有check=1的行
  • 分组内仅含check=0的行时,保留该分组全部行

解决代码

使用dplyr包实现需求,假设目标DataFrame名为df:

写法一(逻辑清晰版)

library(dplyr)

df_filtered <- df %>%
  group_by(PIT, Presence) %>%
  filter(if (any(check == 1)) check == 1 else TRUE) %>%
  ungroup()

写法二(简洁版)

library(dplyr)

df_filtered <- df %>%
  group_by(PIT, Presence) %>%
  filter(check == 1 | all(check == 0)) %>%
  ungroup()

代码解释

  • group_by(PIT, Presence):按指定两列对数据分组
  • 筛选逻辑:
    • 写法一中,通过any(check == 1)判断分组内是否存在check=1的行,存在则只保留这类行;否则保留全部分组行
    • 写法二中,直接判断当前行check=1,或者整个分组全为check=0,满足任一条件则保留该行
  • ungroup():取消分组状态,返回常规DataFrame结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 06:52:39