2013-03-25 34 views
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值= 0.15997?如何使chisq.test四位数字的十进制数字?

+0

另请参阅'选项(“scipen”)'。 – 2013-03-25 06:55:24

回答

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 
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修改其行为,因为你可以看到它肯定有'数字'的参数。如果你真的有想法,你甚至可以编写自己的功能。

+0

我会给你一个不情愿的upvote,因为我不认为鼓励新用户使用部分参数匹配是不好的。 – 2013-03-25 06:51:01

+0

@DWin够好。我修改了它。 – 2013-03-25 08:39:48

相关问题