我正在使用全基因组关联研究数据集,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,并且我失去了他们的排名。
有什么方法吗?
答案 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