从cor.test中提取逐字p值

时间:2014-08-18 16:31:30

标签: r correlation p-value

我在两个向量之间运行了相关性分析,我需要绘制-log10(pvalue)...当相关性运行时,我得到以下结果:

data <- read.table("test-data.txt")
a <- data[,1]
b <- data[,2]
test <- cor.test(a, b)
test

    Pearson's product-moment correlation

data:  a and b
t = 8.3704, df = 10352, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.06282908 0.10109436
sample estimates:
       cor 
0.08199194 

但当我将p值提取为test$p.value时,它出现为零..这意味着当我计算-log10(pv)时,我得到Inf作为结果......我无法策划。

然而,-log(2.2e-16, base=10)15.65758,这就是我想要的

所以我的问题是:你将如何维持指数?

另外,这是我正在运行的一系列81个相关的样本,必须一起绘制,我对81个中的30个有同样的问题

1 个答案:

答案 0 :(得分:1)

你的p值不是2.2e-16,低于那个。这意味着它的计算结果为零。您可以跳过零,或将零设置为任意小的2.2e-16。

ifelse(pv==0,-log(2.2e-16,base=10),-log(pv,base=10))

当然,81次中有30次你不知道p值是多少,只是它非常小。