r - 为什么summary()给max()赋予不同的最大值

标签 r

在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()将结果四舍五入吗?

最好的
奥立佛

最佳答案

这是按照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 

关于r - 为什么summary()给max()赋予不同的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14536810/

相关文章:

r - 用 lm 对象填充列表

在启动时运行 R 脚本

sql - 如何快速将数据从R导出到SQL Server

javascript - DT 表中的 Shiny 小部件

c++ - 直接在 Rcpp 中使用 (c)igraph(即不通过 R)

r - 照片与 r 中的图形对齐

r - gsub 返回超过正则表达式匹配

r - 每组,选择第一行和符合条件的另一行

r - 如何在 R 中将 NULL 作为参数传递?

行绑定(bind)嵌套列表中存在的所有 tibbles