我正在寻找一种快速简单的方法来降低R中数字的精确度,无论是在图表上显示还是包含在报告中(文本或表格)。
我的首选函数是sprintf()
,但似乎没有任何格式说明符足以处理所有可能的情况,即使我正在寻找的东西相当常见(这是什么我们都是在学校教的。)
例如,如果我想要舍入到3位有效数字,我正在寻找可能采用的公式:
注意:This answer提供了我认为只是这样一个函数的javascript实现,但我不是javascript专家,并且使用的一些函数的语法对我来说并不明显。另外,我很好奇我是否错过了基本R或公共库的一些内置功能来做这件事。
答案 0 :(得分:4)
> formatC( signif(1239451, digits=3), big.mark=",", format="fg")
[1] "1,240,000"
> formatC( signif(-12.1257, digits=3), big.mark=",", format="fg")
[1] "-12.1"
> formatC( signif(.0581, digits=3), big.mark=",", format="fg")
[1] "0.0581"
> formatC( signif(5, digits=3), big.mark=",", format="fg")
[1] "5"