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

R语言实现:当Treatment列含Chemo时移除整个sample分组

问题:保留无"Chemo"的样本分组

问题背景

需要仅保留Treatment列中**完全不存在"Chemo"**的sample分组,使用普通filter过滤后无法移除整个B组,达不到预期效果。

尝试的代码

df %>%
  group_by(sample) %>%
  filter(Treatment!="Chemo")

输入数据

> data.frame(sample=c("A","A","A","A","B","B","C","C"), Treatment=c("Chemo","Chemo", "Chemo","Chemo","Hormon","Chemo","Hormon","Hormon"))
  sample Treatment
1      A     Chemo
2      A     Chemo
3      A     Chemo
4      A     Chemo
5      B    Hormon
6      B     Chemo
7      C    Hormon
8      C    Hormon

期望输出

sample Treatment
7      C    Hormon
8      C    Hormon

正确代码及说明

正确代码

df %>%
  group_by(sample) %>%
  filter(!any(Treatment=="Chemo"))

说明

原代码filter(Treatment!="Chemo")仅过滤分组内单个Treatment为"Chemo"的行,但B组中存在Treatment为"Hormon"的行,因此会保留这些行,无法移除整个B组。

而!any(Treatment=="Chemo")的逻辑是:检查整个分组内是否存在任意一个"Chemo",如果存在则过滤掉整个分组,最终只保留完全没有"Chemo"的分组,正好匹配需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 20:39:19