2013-03-25 103 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

相關問題