代码之家  ›  专栏  ›  技术社区  ›  Dan

在数字中添加逗号以进行输出

  •  44
  • Dan  · 技术社区  · 15 年前

    我正在通过将数据帧输出到HTML xtable . 我想在表的几列中添加逗号。我想在我做我自己的粘贴黑客我会检查是否有一个内置的方式来做这件事。

    5 回复  |  直到 6 年前
        1
  •  58
  •   Max Ghenis shoyer    7 年前

    您可能需要考虑使用 formatC

    > formatC(1:10 * 100000, format="d", big.mark=",")
     [1] "100,000"   "200,000"   "300,000"   "400,000"   "500,000"   "600,000"  
     [7] "700,000"   "800,000"   "900,000"   "1,000,000"
    
        2
  •  13
  •   Rich Scriven    7 年前

    非常感谢张学森的回答。 formatC 看起来是一个非常有用的函数。这促使我阅读了它的文档,我发现 prettyNum 对于我遇到的一个类似的问题,这是一个非常优雅的解决方案。下面是一个最小可行的例子,说明我在名为 enrollment.summary .

    xtable(prettyNum(enrollment.summary,big.mark=","))

        3
  •  8
  •   user3357059    7 年前

    您也可以尝试使用函数参数“format.args”

      ## Demonstration of additional formatC() arguments.
      print(fm1.table, format.args = list(big.mark = "'", decimal.mark = ","))
    

    从这里

    https://cran.rstudio.com/web/packages/xtable/xtable.pdf

        4
  •  5
  •   steveb    7 年前

    这是一个迟交的答案,但你也可以用 scales::comma_format 如下:

    library(scales)
    values <- c(1000000.789, 8888.23)
    comma_format(digits = 12)(values)
    ## [1] "1,000,000.789" "8,888.230"
    

    对于整数值,可以只使用逗号:

    int_vals <- c(1234, 5678)
    comma(int_vals)
    ## [1] "1,234" "5,678"
    
        5
  •  5
  •   Paul    6 年前

    设置摘要格式 dplyr ,这是样板代码:

    df %>%
        summarise(mu=mean(big_values),
                  min=min(big_values),
                  max=max(big_values)) %>%
        mutate_each(funs(prettyNum(., big.mark=",")))