我想将报告中的数字设置为significant digits,但要保持尾随有效零,并正确设置大数字的格式

例如,3个有效数字的数字c(10.00001123451234.5123.45,1.2345,0.12345)应该是10.0、12300、1230、123、1.23、0.123,但我用不同的方法得到不同的结果(而且似乎没有一种方法是通用的).

> numbers<-c(10.00001,12345,1234.5,123.45,1.2345,0.12345)
> for(n in seq(numbers)){
+   print(signif(numbers[n],digits=3))
+   print(format(numbers[n],digits=3))
+   print(formatC(numbers[n], digits=3,format="fg"))
+   print(formatC(numbers[n], digits=3,format="fg", flag="#"))
+   }
[1] 10
[1] "10"
[1] "  10"
[1] "10.0"
[1] 12300
[1] "12345"
[1] "12345"
[1] "12345."
[1] 1230
[1] "1234"
[1] "1234"
[1] "1234."
[1] 123
[1] "123"
[1] " 123"
[1] "123."
[1] 12.3
[1] "12.3"
[1] "12.3"
[1] "12.3"
[1] 1.23
[1] "1.23"
[1] "1.23"
[1] "1.23"
[1] 0.123
[1] "0.123"
[1] "0.123"
[1] "0.123"

在这里,签名并格式化10.00001结果.formatC with flag="#"正确处理小数字,但不正确处理大数字.

有更好的办法吗?

推荐答案

抱歉,我当时没有更新.我的问题或prettynum中的陈述都不起作用.最后我用

print(formatC(signif(numbers[n],digits=3), digits=3,format="fg", flag="#"))

它正确地处理了尾随的零和大数字.

R相关问答推荐

逐行替代引用前一行的for循环

在R中,如何创建时间间隔的图表?

高质量地将R格式的图表从Word中输出

使用预定值列表将模拟数量(n)替换为rnorm()

使用R的序列覆盖

使用tidyverse方法绑定行并从一组管道列表执行左连接

矩阵%*%矩阵中的错误:需要数字/复杂矩阵/向量参数

将数据集中的值增加到当前包含的最大值

使用strsplit()将向量操作为数据框

一小时满足条件的日期的 Select

提取第一个下划线和最后一个下划线之间的任何内容,例外情况除外

使用Facet_WRAP时更改框图中线的 colored颜色

在使用tidyModels和XGBoost的二进制分类机器学习任务中,所有模型都失败

ComplexHEAT:使用COLUMN_SPLIT时忽略COLUMN_ORDER

基于R中的间隔扩展数据集行

如何在R中平滑地绘制线图(不拟合)?

TreeNode打印 twig 并为其上色

如何在R中使用hmm TMB提前一步预测观察到的状态?

将数据集旋转到长格式,用于遵循特定名称模式的所有变量对

如何将宽格式的患者信息数据高效地转换为患者计数的时间序列?