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

如何合并多列P值做校正?求R语言FDR方法实现代码

合并多列P值并执行FDR校正

实现步骤

  • 提取p-value1和p-value2两列的所有P值,合并为单个向量,NA值不参与校正计算
  • 使用R内置的p.adjust()函数,指定method = "fdr"完成错误发现率校正
  • 将校正结果对应匹配回原数据的新列Adjustment_Pvalues中

完整代码实现

假设你的数据框名为df,运行以下代码:

# 合并两列P值为向量
all_p <- c(df$`p-value1`, df$`p-value2`)
# 执行FDR校正,保留原向量长度(NA位置返回NA)
adjusted_p <- p.adjust(all_p, method = "fdr", na.rm = TRUE)
# 将校正结果按行拆分,存入新列(用字符串格式展示每行的两个校正值)
df$Adjustment_Pvalues <- mapply(function(x, y) paste(round(x, 4), round(y, 4), sep = ", "),
                                adjusted_p[1:nrow(df)],
                                adjusted_p[(nrow(df)+1):length(adjusted_p)])

示例结果

针对你提供的测试数据,执行后输出如下:

Trait p-value1 p-value2 Adjustment_Pvalues
1 0.5 0.01 0.5000, 0.0300
2 NA NA NA, NA
3 0.2 0.45 0.4000, 0.5000
4 0.2 0.02 0.4000, 0.0300

校正计算逻辑:合并后的有效P值共6个——0.5, 0.2, 0.2, 0.01, 0.45, 0.02,经FDR校正后得到0.5, 0.4, 0.4, 0.03, 0.5, 0.03,对应放回原列位置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 06:17:43