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

如何删除OTU数据集中列总和小于5000的样本列

OTU数据集样本列过滤操作实现

基于你提供的head(otu)输出结构,默认otu数据第一列为ASV编号,其余列为各样本的丰度数值。如果你的数据已经将ASV编号设为行名,可对应调整代码去掉第一列的保留逻辑。

方法1:基础R实现

# 计算所有样本列的总和,排除第一列ASV编号列
col_sums <- colSums(otu[, -1], na.rm = TRUE)
# 保留第一列+总和≥5000的样本列
otu_filtered <- otu[, c(TRUE, col_sums >= 5000)]

如果ASV已经设为行名,可使用更简化的代码:

otu_filtered <- otu[, colSums(otu, na.rm = TRUE) >= 5000]

方法2:tidyverse(dplyr)实现

library(dplyr)

otu_filtered <- otu %>%
  # 保留第一列ASV编号,筛选所有数值列中总和≥5000的样本列
  select(1, where(~ is.numeric(.) && sum(., na.rm = TRUE) >= 5000))

结果验证

执行以下命令可查看过滤后所有样本列的总和,确认是否都符合≥5000的要求:
colSums(otu_filtered[, -1], na.rm = TRUE)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:48:04