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

R语言如何通过双条件直接为数据框添加差异基因上下调标注

实现方法

你可以直接用dplyr的case_when()语法实现需求,无需提前过滤,逻辑清晰易维护:

library(dplyr)

aaa <- aaa %>%
  mutate(
    UP_DOWN = case_when(
      # 同时满足两个阈值且log2FoldChange为正标UP
      padj < 0.05 & abs(log2FoldChange) > 1.5 & log2FoldChange > 0 ~ "UP",
      # 同时满足两个阈值且log2FoldChange为负标DOWN
      padj < 0.05 & abs(log2FoldChange) > 1.5 & log2FoldChange < 0 ~ "DOWN",
      # 所有不满足条件的统一标NS
      TRUE ~ "NS"
    )
  )

如果你更习惯用ifelse(),也可以用嵌套写法实现同样效果:

aaa <- aaa %>%
  mutate(
    UP_DOWN = ifelse(
      padj < 0.05 & abs(log2FoldChange) > 1.5,
      ifelse(log2FoldChange > 0, "UP", "DOWN"),
      "NS"
    )
  )

逻辑验证

对应你提供的示例数据:

  • 第1行:padj<0.05、log2FoldChange=-3.87,绝对值>1.5,标注为DOWN
  • 第5行:padj<0.05、log2FoldChange=2.01,绝对值>1.5,标注为UP
  • 其余行不满足双阈值条件,统一标注为NS,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:27:03