为什么R的打印中的“ digits”自变量会更改值?

时间:2019-05-09 14:38:35

标签: r

为什么函数返回值t = 13.214,而print(..., digits = 3)返回值t = 10

vals <- data.frame(a = c(4, 2, 4, 7, 3, 4, 8, 8, 3, 0, 1, 5, 4, 6, 4, 8, 7, 9, 6, 6, 3, 6, 7, 4), 
                   b = c(5, 7, 6, 13, 12, 6, 14, 16, 4, 2, 7, 7, 4, 8, 9, 9, 11, 13, 12, 8, 3, 8, 7, 7))
stats::t.test(x = vals)
# One Sample t-test
# data:  vals
# t = 13.214, df = 47, p-value < 2.2e-16
# alternative hypothesis: true mean is not equal to 0
# 95 percent confidence interval:
#   5.598761 7.609572
# sample estimates:
#   mean of x 
# 6.604167 
print(stats::t.test(x = vals), digits = 3)

表格?print

  

digits:最小有效数字,请参阅print.default。

但这不应该将10更改为13吗?

打包“统计信息”版本3.5.1
R.version
平台x86_64-w64-mingw32
拱形x86_64
os mingw32
系统x86_64,mingw32
状态
专业3
次要5.1
2018年
第07个月
第二天
svn版本74947
语言R
version.string R版本3.5.1(2018-07-02) 昵称Feather Spray

1 个答案:

答案 0 :(得分:2)

回答这些问题的第一步始终是弄清楚我们正在处理哪种打印方法。 ?print中的一般帮助不一定非常相关。 t.test对象的类为htest,因此我们想看看print.htest

请注意,?print.htest会将您带到稍微更具体的文档页面。 digits的文档中没有具体说明,但是在“详细信息”部分中,我们看到:

  

传统上,这两种打印方法都没有遵循digits参数   正确地。他们现在这样做了,htest方法主要用于类似   max(1,digits-2)。

(在R 3.5.2中)

例如,在功能代码中,我们看到以下内容:

out <- c(out, paste(names(x$statistic), "=", format(signif(x$statistic, 
            max(1L, digits - 2L)))))

digits的默认值通常为7。它使用digits打印样本估计值和置信区间,而其他数量则使用更少的数字。