0
> options(digits=5)
> x<-c(139,138,112,111)
> y<-c(0.3,0.25,0.2,0.25)
> chisq.test(x,p=y)

Chi-squared test for given probabilities

data:  x 
X-squared = 5.1667, df = 3, p-value = 0.16

该命令options(digits=4) 不能使 chisq.test 的数字输出四个数字,我怎样才能得到 p-value = 0.15997?

4

2 回答 2

4

您可以直接访问 p 值并根据需要对其进行四舍五入:

> chi_sq <- chisq.test(x,p=y)
> chi_sq$p.value
[1] 0.159992
> round(chi_sq$p.value, 5)
[1] 0.15999
于 2013-03-25T01:01:38.917 回答
1
 x <- c(139,138,112,111)
 y <- c(0.3,0.25,0.2,0.25)
 a <- chisq.test(x,p=y)
 print(a,digits=5)

要不就

print(chisq.test(x,p=y),digits=5)

...给出:

    Chi-squared test for given probabilities

data:  x 
X-squared = 5.1667, df = 3, p-value = 0.15999

如果您查看对象chisq.test创建:

str(a)

你会看到它是一流的htest

所以问题是“打印方法如何为 htest 工作?”

如果你看一下?print泛型函数,你会看到一些类有digits=参数,这就是你所需要的,所以你可以猜到我最初建议的(就像我做的那样),但是因为我们看到它是类的htest,我们可以通过以下方式了解它getAnywhere

getAnywhere(print.htest)

并且看到它在里面stats(无论如何都是显而易见的第一个猜测),我们也可以通过以下方式看到代码:

stats:::print.htest

因此,最后两个中的任何一个都向您展示了它的确切作用,以及如何使用 修改其行为print,因为您可以看到它肯定具有“数字”参数。如果你真的有心,你甚至可以编写自己的函数。

于 2013-03-25T03:49:56.270 回答