首页 > 解决方案 > R 中的 p.adjust 函数为所有原始 p 值提供了意外的值 1

问题描述

我正在尝试使用 Bonferroni 方法调整我的原始 p 值。但是,所有调整后的 p 值都显示为 1。我不希望这样。我以前多次运行过这个功能。我还尝试了其他一组 p 值,但仅在这组中,它显示的值为 1。此外,我手动检查以及使用 excel 工具,它在这组中工作得非常好。但不确定为什么 p.adjust 函数没有给出正确的输出。

> bonf_p_value <- p.adjust(results1$p_value, method="bonferroni", n = length(results1$p_value))
> bonf_p_value
[1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[59] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[117] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[175] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[233] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

我还在这里粘贴了前 30 个原始 p 值的输出:

> results1$p_value [1:30]
 [1] 1.11718083532422e-07 1.51230033705852e-22 0.0306424108597955   0.145414146079963    0.190655506480756   
 [6] 4.1978959530709e-10  2.94936466785171e-22 0.0430124258812526   0.000370518232611833 0.0552390731601288  
[11] 2.00227050966185e-10 1.13669513384145e-07 1.67714177934414e-10 0.00280377485899087  1.34668243167121e-16
[16] 0.129035611905561    0.000174054291588747 3.68035394001236e-10 9.02747138351362e-24 6.24974784951431e-06
[21] 2.88869180470667e-05 5.46785702671633e-11 0.00177979879670995  3.93003744169092e-18 1.17992044937425e-65
[26] 3.89268583374799e-42 0.00113708261328755  0.744722392060977    8.85123774661934e-42 5.27920045337181e-22
560 Levels: 0.000114741095154172 0.000174054291588747 0.000205370871640424 0.000219014679077748 ... 9.84472710150517e-05

这是“p_value”列的长度:

> length(results1$p_value)
[1] 274

有谁知道 p.adjust 计算不正确的原因是什么,我需要做什么才能以正确的方式进行?

标签: rp-value

解决方案


推荐阅读