【问题标题】:R - conditional formatting of numbers (decimal places)R - 数字的条件格式(小数位)
【发布时间】:2018-04-06 08:14:48
【问题描述】:

我正在 R 中构建一个闪亮的应用程序,其中一个输出是包含汇总数据的表格。此表中出现的值变化很大 - 从 0.003 到 3,450,023。

我想有一种方法可以格式化数字以进行显示,例如,小于 0 的数字始终显示为小数点后三位,0 到 10 之间的数字获得小数点后一位,其他所有数字都获得根本没有小数位,只是为了方便用户阅读数据。

我查看了this question,它修复了小数位数,这不是我想要的。我也玩过signif,它限制了位数,导致大数的科学记数法不适合观众。

在我去构建一个小函数来为我解决这个问题之前,R 中有没有内置的方法可以做到这一点?

【问题讨论】:

  • 你知道sprintfformatCprettyNum吗?如果这些都不起作用,那么您可能应该编写自己的函数。
  • 是的,我对所有这些都很熟悉,但它们不会在一次通话中完全返回我想要的。我最终编写了一个非常类似于下面的函数。谢谢。

标签: r


【解决方案1】:

R 中可能没有 Format 函数,它可以根据不同的条件一次工作。您可以根据此条件应用格式功能:

           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)
           }

【讨论】:

  • 谢谢,这和我最后写的也很相似。
猜你喜欢
  • 1970-01-01
  • 2011-03-27
  • 1970-01-01
  • 2017-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-04
相关资源
最近更新 更多