R - 数字条件格式化(小数位数)

3
我正在用R构建一个闪亮的应用程序,其中之一的输出是一张包含汇总数据的表格。在这个表格中出现的值非常不同 - 从0.003到3,450,023。
我希望有一种方式可以格式化数字以便显示,例如,小于0的数字始终显示三位小数,介于0和10之间的数字显示一位小数,其他所有数字都不显示小数,只是为了使用户更容易阅读数据。
我已经查看了this question,它修复了小数位数,这不是我想要的。我还尝试过signif,它限制了数字的位数,导致大数字的科学计数法对受众来说不合适。
在我去构建一个小函数来解决这个问题之前,有没有内置的方法可以在R中实现这个功能?

你知道sprintfformatCprettyNum吗?如果这些都不适用于你,那么你可能需要编写自己的函数。 - user3603486
是的,我熟悉它们,但它们不能在一次调用中返回我想要的结果。我最终编写了一个几乎与下面的函数相似的函数。谢谢。 - Hester Lyons
1个回答

2

在R语言中,可能没有一次性基于不同条件工作的格式化函数。您可以根据以下条件应用格式化函数:

           number <-function(number){
           if(number<0){
           result <- format(number,nsmall = 3)
           }else if(number %in% 0:10){
           result <-  format(number , nsmall = 1)
           }else{
           result <- format(number , nsmall=0)
           }
           return(result)
           }

谢谢,这与我最终编写的代码非常相似。 - Hester Lyons

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接