Why does summary() give a different maximum to max()
r
Solution
It is how the results are printed respecting the `digits` argument. The default is
> max(3, getOption("digits")-3)
[1] 4
Why R rounds up is just the default rules in use - go to the nearest even digit. We can see this in action with `signif()`:
> signif(183151, digits = 4)
[1] 183200
which, as `?summary` tells us, is what is used by `summary()` and is controlled by the `digits` argument:
digits: integer, used for number formatting with ‘signif()’ (for
‘summary.default’) or ‘format()’ (for ‘summary.data.frame’).
Read `?signif` for more on the rounding issue.
To get more significant digits, pass a higher number to `summary()` via the `digits` argument.
For example
> 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
Problem
using R-2.15.2 on Windows XP I get a different maximum from `summary()` than from `max()`. Why is that so? Here is the relevant code: ``` > 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 ``` Any ideas why `summary()` rounds the result up? Best Oliver