gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 16:55:56 24 4
gpt4 key购买 nike

我想创建一个函数,它返回一个数字向量,其精度反射(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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com