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

R语言按组过滤:排除false占比超50%的分组

使用tidyverse过滤False占比超50%的分组

你可以通过dplyr的分组计算+过滤实现需求,核心是统计每组内False的数量占比,再保留占比≤50%的分组。以下是两种可行方案:

方案一:直接分组过滤

这种方式更简洁,一步完成分组计算与过滤:

library(tidyverse)

# 替换成你的数据框名、分组列名、逻辑列名
filtered_data <- your_data %>%
  group_by(your_group_column) %>%
  # 计算组内False占比,保留占比不超过50%的组
  filter(sum(!your_true_false_column) / n() <= 0.5) %>%
  ungroup()
  • sum(!your_true_false_column):统计组内False的数量(因为!TRUE为FALSE,!FALSE为TRUE,sum会将TRUE计为1,FALSE计为0)
  • n():返回当前组的总数据条数
  • ungroup():取消分组,避免后续操作受分组状态影响

方案二:先筛选有效分组再过滤原数据

如果需要先查看各组的False占比,这种方式更直观:

library(tidyverse)

# 第一步:计算各组的False占比,筛选出符合条件的分组
valid_groups <- your_data %>%
  group_by(your_group_column) %>%
  summarise(
    false_ratio = sum(!your_true_false_column) / n(),
    .groups = "drop"
  ) %>%
  filter(false_ratio <= 0.5) %>%
  pull(your_group_column)

# 第二步:用有效分组过滤原数据
filtered_data <- your_data %>%
  filter(your_group_column %in% valid_groups)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 13:45:49