[在format.pval()
中指定3位数字时,为什么0.019950
为什么输出4位数字:
format.pval(0.019950, eps=.001, digits=3, nsmall=3)
"0.0199"
但是,例如,0.019951
输出3位数字:
format.pval(0.019951, eps=.001, digits=3, nsmall=3)
"0.020"
基于dcarlson's
答案,保留3位数字同时保留p-值格式的解决方案,只是将值四舍五入到3位数字,然后再传递给format.pval()
:
format.pval(round(0.019950, digits=3), eps=.001, digits=3, nsmall=3)
"0.020"
digits=
参数在R中的此处和其他地方是有效数字,而不是十进制数字。有效数字会忽略小数点前的0,因此第一个响应是3个有效数字,因为您无需在小数点后计算0。在第二个示例中,答案四舍五入为.02,但是nsmall = 3强制附加尾随0。
此外,在R中指定digits=
自变量通常被视为建议性变量,因此可能无法遵循。您始终可以使用round
或格式化功能sprintf
强制R打印小数位数。
format.pval(round(0.019950, 3), digits=3, nsmall=3)
# [1] "0.020"
sprintf("%.3f", .019950)
# [1] "0.020"
要解决您的第一个问题“为什么说0.019950输出4位数字”