如何减少R中任何数字的有效位数?

时间:2013-07-29 20:38:39

标签: r

我正在寻找一种快速简单的方法来降低R中数字的精确度,无论是在图表上显示还是包含在报告中(文本或表格)。

我的首选函数是sprintf(),但似乎没有任何格式说明符足以处理所有可能的情况,即使我正在寻找的东西相当常见(这是什么我们都是在学校教的。)

例如,如果我想要舍入到3位有效数字,我正在寻找可能采用的公式:

  • 1,239,451并返回1,240,000
  • -12.1257并​​返回-12.1
  • .0681并返回.0681
  • 5并返回5

注意:This answer提供了我认为只是这样一个函数的javascript实现,但我不是javascript专家,并且使用的一些函数的语法对我来说并不明显。另外,我很好奇我是否错过了基本R或公共库的一些内置功能来做这件事。

1 个答案:

答案 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"