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

如何用rowSums筛选存在于20-29种细菌的目标基因?

解决R语言筛选基因数据框的问题

问题分析

你需要筛选出存在于至少20种但非全部30种细菌中的基因,也就是行和(每种基因对应的细菌数量)在20~29范围内的行。之前错误使用|(逻辑或)导致条件覆盖所有行,因为>=20或<=29会包含所有可能的行和(最大行和是30,30满足>=20,其他行和都满足<=29)。

正确解决方案

以下几种方法都能实现需求:

方法1:基础R逻辑与运算符&

直接用&同时满足两个条件,这是最直接的写法:

commonsymbols <- cleansymbols3[rowSums(cleansymbols3) >= 20 & rowSums(cleansymbols3) <= 29, ]

方法2:使用dplyr的between函数(更直观)

如果习惯使用tidyverse语法,可以用dplyr的filter和between函数:

library(dplyr)
commonsymbols <- cleansymbols3 %>%
  filter(between(rowSums(.), 20, 29))

方法3:用%in%匹配整数序列

因为行和是整数,也可以直接匹配20:29的序列:

commonsymbols <- cleansymbols3[rowSums(cleansymbols3) %in% 20:29, ]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 12:55:18