-2

我在两个向量之间进行了相关性分析,我需要绘制 -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 个,我有同样的问题

4

1 回答 1

1

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

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

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

于 2014-08-18T16:45:19.093 回答