6

Windows XP で R-2.15.2 を使用すると、 とは異なる最大値が得られsummary()ますmax()。どうしてこんなことに?

関連するコードは次のとおりです。

> class(dat)
[1] "data.frame"
> dim(dat)
[1] 3850   54
> summary(dat$enrol)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    26     945    1744    3044    3128  183200 
> max(dat$enrol)
[1] 183151

結果を切り上げる理由summary()はありますか?

ベストオリバー

4

1 に答える 1

15

digitsこれは、引数に関して結果がどのように出力されるかです。デフォルトは

> max(3, getOption("digits")-3)
[1] 4

Rが切り上げられる理由は、使用されているデフォルトのルールにすぎません-最も近い偶数の数字に移動します。これを次のように実行して確認できますsignif()

> signif(183151, digits = 4)
[1] 183200

これは、引数によって?summary使用されsummary()、制御されるものです。digits

digits: integer, used for number formatting with ‘signif()’ (for
        ‘summary.default’) or ‘format()’ (for ‘summary.data.frame’).

?signif丸めの問題の詳細については、こちらをお読みください。

より有効な桁数を取得するには、引数をsummary()介してより大きな数値を に渡します。digits

例えば

> set.seed(1)
> vec <- c(10, 100, 1e4, 1e5, 1e6) + runif(5)
> summary(vec)
     Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
     10.3     100.4   10000.0  222000.0  100000.0 1000000.0 
> summary(vec, digits = 7)
     Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
     10.3     100.4   10000.6  222022.5  100000.9 1000000.0 
> summary(vec, digits = 8)
     Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
     10.3     100.4   10000.6  222022.5  100000.9 1000000.2 
于 2013-01-26T12:17:23.743 に答える