有谁知道为什么在R?
中使用fisher.test()函数生成两个不同的p值> testMat<-matrix(c(190,9641,177,26067),ncol=2)
> fisher.test(testMat)
Fisher's Exact Test for Count Data
data: testMat
p-value < 2.2e-16
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
2.349071 3.587034
sample estimates:
odds ratio
2.902246
> fisher.test(testMat)$p.value
[1] 1.832771e-23
> fisher.test(testMat)[1]
$p.value
[1] 1.832771e-23
从其他精确测试(未包括输出),看来fisher.test()的默认输出具有2.2e-16的较低阈值,即使保留了真正的p值。我很好奇这是编程的地方,因为我没有在fisher.test
的输出代码或htest
的文档中看到它。
答案 0 :(得分:2)
这不会影响fisher.test
。这就是R格式化p值的方式。进行格式化的函数是format.pval
。观察
x<-1.832771e-23
format.pval(x)
# [1] "< 2.22e-16"
当p值小于机器的数值公差时,R基本上只是说它是一个非常小的数字&#34;。有关详细信息,请参阅?format.pval
。