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

如何用group_by基于向量筛选tibble中含全部指定值的分组?

基于输入向量筛选包含全部指定值的分组(tidyverse实现)

你可以通过输入向量vec简化筛选逻辑,不用逐个写any()语句。核心思路是检查向量中的所有元素是否都存在于当前分组的b列中,用all(vec %in% b)就能实现这个判断。

示例代码实现

先定义目标向量:

vec <- c(1,2,3)

然后用以下代码完成分组筛选:

example %>%
  group_by(a) %>%
  filter(all(vec %in% b)) %>%
  ungroup()

逻辑说明

  • group_by(a)按分组列a拆分数据
  • all(vec %in% b)会遍历当前分组的b列值,验证vec中的每一个元素是否都在该组内存在。只要有一个元素不存在,该分组就会被过滤掉
  • 最终结果会保留所有包含vec全部值的分组(即示例中的groep和groep3),和你原来的多any()语句效果完全一致

这种写法的优势在于,不管vec的长度是多少,都只需要一行判断逻辑,避免了大量重复的any()代码。

内容的提问来源于stack exchange,提问作者T. BruceLee

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 14:40:48