对于R中的小p值,Z分数四舍五入到无穷大

时间:2014-06-16 14:12:35

标签: r precision p-value genetics

我正在使用全基因组关联研究数据集,p值范围从1E-30到1.我有一个R数据框"数据"其中包括一个变量" p"对于p值。

我需要对p值进行基因组校正,我正在使用以下代码进行:

    p=data$p

    Zsq = qchisq(1-p, 1)

    lambda = median(Zsq)/0.456

    newZsq = Zsq/lambda

    Newp = 1-pchisq(newZsq, 1)

在第二行的命令中,我使用qchisq函数将p值转换为z分数,p值的z分数< 1E-16正在四舍五入到无穷大。这意味着我的最重要数据点的p值在基因组校正后四舍五入为0,并且我失去了他们的排名。

有什么方法吗?

1 个答案:

答案 0 :(得分:0)

阅读help(".Machine")。然后设置lower.tail=FALSE并避免与1:

区分
p <- 1e-17

Zsq = qchisq(p, 1, lower.tail=FALSE)

lambda = median(Zsq)/0.456

newZsq = Zsq/lambda

Newp = pchisq(newZsq, 1, lower.tail=FALSE)
#[1] 0.4994993