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

如何将which()输出的行号匹配ENSEMBL ID列获取非零TPM对应基因

方法1:通过已得到的行号直接匹配

你已经用which()得到了符合条件的行号,只需要把行号作为索引取ENSEMBL列的对应值即可,示例代码如下:

# 先把你得到的行号存为变量
row_idx <- which(df$SampleA == 1)
# 索引ENSEMBL列的对应行,得到目标基因ID列表
sampleA_nonzero_genes <- df$ENSEMBL[row_idx]

如果你的样本列名带空格(比如你的示例里是Sample A),需要用反引号包裹列名:

row_idx <- which(df$`Sample A` == 1)
sampleA_nonzero_genes <- df$ENSEMBL[row_idx]

小提示:如果你后续处理中把ENSEMBL ID设为了数据框的行名,替换为rownames(df)[row_idx]即可取到对应的ID。

方法2:无需单独获取行号,直接用逻辑索引一步获取

其实不需要单独运行which()拿行号,直接用逻辑条件索引更简洁:

sampleA_nonzero_genes <- df$ENSEMBL[df$SampleA == 1]

如果需要将结果导出为文本文件,可运行以下代码:

write.table(
  sampleA_nonzero_genes,
  file = "sampleA_TPM_nonzero_genes.txt",
  row.names = FALSE,
  col.names = FALSE,
  quote = FALSE
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 22:54:06