我正在使用一个全基因组关联研究数据集,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值< 1E-16的z分数被四舍五入到无穷大。这意味着我最重要的数据点的p值在基因组校正后四舍五入为0,而我就失去了它们的排名。
有办法绕过这件事吗?
发布于 2014-06-16 14:19:59
读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.4994993https://stackoverflow.com/questions/24245696
复制相似问题