这里使用的数据集是风险(概率),并且概率很小。 当使用R中的
summary
函数时,得到以下结果
> summary(prob_ann)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000e+00 1.000e-16 1.034e-13 3.959e-12 7.880e-13 8.222e-10
但是,查询实际最小值会产生正确的值:
> min(prob_ann)
## [1] 1.199446e-35
我的问题是这样的: ¿为什么
summary
使用科学记数法,但仍然报告真正的零值而不是 1.199e-35
的正确值?
summary
显示的最小值与实际最小值不同的原因是因为输出值的class。
set.seed(123)
prob_ann <- c(1.199446e-35, runif(100, 0, 8.222e-10))
res <- summary(prob_ann); res
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.000e+00 2.003e-10 3.831e-10 4.059e-10 6.203e-10 8.175e-10
min(prob_ann)
[1] 1.199446e-35
class(res)
#[1] "summaryDefault" "table"
summary.default
函数的倒数第二行是:
class(value) <- c("summaryDefault", "table")
第二个参数由于
print.summaryDefault
函数而更改输出的格式:
function (x, digits = max(3L, getOption("digits") - 3L), ...)
{
...
print.table(xx, digits = digits, ...)
invisible(x)
}
如果您想查看未格式化输出,那么,您可以使用
unlcass
:
unclass(res)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.199446e-35 2.066278e-10 4.407913e-10 4.176800e-10 6.351261e-10 8.195258e-10