R语言dplyr中基于多条件删除指定基因分组的实现方法
解决方案
实现思路
- 先调用
group_by()按gene字段对数据集做分组 - 再通过
filter()执行组级过滤:只要分组内存在time=1且frequency>0.9的记录,就剔除整个分组,反之保留全部分组数据;这里用!any(判断条件)的写法兼容性更强,就算某个基因分组存在多条time=1的记录,也能正确识别是否符合删除标准 - 最后可选调用
ungroup()解除分组,方便后续数据处理
代码实现
# 加载dplyr包 library(dplyr) # 核心处理逻辑 result <- df %>% group_by(gene) %>% filter(!any(time == 1 & frequency > 0.9)) %>% ungroup() # 输出结果验证 print(result)
运行输出
# A tibble: 4 × 3 gene frequency time <chr> <dbl> <dbl> 1 B 0.3 1 2 B 0.2 2 3 B 1 3 4 B 1 4
内容的提问来源于stack exchange,提问作者LDT
相关产品推荐
相关产品推荐

