r - 如何格式化具有指定精度级别的数字?

标签 r format

我想创建一个函数,它返回一个数字向量,其精度反射(reflect)为只有 n 个有效数字,但没有尾随零,而不是科学记数法

例如,我想要

somenumbers <- c(0.000001234567, 1234567.89)
myformat(x = somenumbers, n = 3)

返回
[1] 0.00000123  1230000

我一直在玩 formatformatCsprintf ,但他们似乎不想独立处理每个数字,他们将数字作为字符串返回(在引号中)。

这是我得到的最接近的例子:
> format(signif(somenumbers,4), scientific=FALSE)
[1] "      0.000001235" "1235000.000000000"

最佳答案

您可以使用 signif 函数四舍五入到给定数量的有效数字。如果您不想要额外的尾随 0,则不要“打印”结果,而是对它们执行其他操作。

> somenumbers <- c(0.000001234567, 1234567.89) 
> options(scipen=5)
> cat(signif(somenumbers,3),'\n')
0.00000123 1230000 
> 

关于r - 如何格式化具有指定精度级别的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5225920/

相关文章:

r - ggplot 中的问题,连续 x 轴为年份

旋转 Markdown 的表格 pdf 输出

r - 如何使用更新将前缀添加到公式的右侧?

ios - UIDatePickerModeDateAndTime 格式 2012-12-20 07 :15:18 +0000 without +0000

r - 在雷达图中加入 geom_ribbon

r - 应用函数不改变原始值

java - JSONObject 删除空值对

windows - 为什么错误 "illegal character: ^M"?

intellij-idea - Intellij-for循环的类型是否具有自动完成功能?

java - BitTorrent peer_id 编码格式,无效请求