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の数字を4つの数値で出力できません。どうすれば、p値= 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メソッドはどのように機能するのですか?」です。

?printジェネリック関数であるを見ると、いくつかのクラスにdigits=引数があり、これが本当に必要なすべてであることがわかります。したがって、最初に提案したこと(私が行ったように)を推測できますが、クラスのものであることがわかります。 htest、私たちはそれについて知ることができますgetAnywhere

getAnywhere(print.htest)

そして、それが入っているのを見るとstats(とにかく最初の推測で明らかだったように)、次の方法でコードを見ることができたはずです。

stats:::print.htest

したがって、これらの最後の2つのいずれかは、それが何をするのか、また、を使用してその動作を変更する方法を正確に示しています。これprintは、間違いなく「数字」引数があることがわかるためです。本当に気があれば、独自の関数を作成することもできます。

于 2013-03-25T03:49:56.270 に答える