【问题标题】:Format number as fixed width, with leading zeros [duplicate]将数字格式化为固定宽度,带前导零 [重复]
【发布时间】:2012-01-06 04:54:34
【问题描述】:

以下代码

a <- seq(1,101,25)
b <- paste("name", 1:length(a), sep = "_")

产生这个输出:

"name_1"  "name_26"  "name_51"  "name_76"  "name_101"

我希望所有值的宽度相同,这意味着我用零填充值,如下所示:

"name_001"  "name_026"  "name_051"  "name_076"  "name_101"

我该如何处理?

(此题与this one有关。)

【问题讨论】:

    标签: r format printf


    【解决方案1】:

    有几种解决方案。

    其中之一是使用sprintf。这使用嵌入在字符串中的C 样式格式代码来指示传递给它的任何其他参数的格式。例如格式化代码%3d表示将数字格式化为宽度为3的整数:

    a <- seq(1,101,25)
    sprintf("name_%03d", a)
    [1] "name_001" "name_026" "name_051" "name_076" "name_101"
    

    另一个是formatCpaste

    paste("name", formatC(a, width=3, flag="0"), sep="_")
    [1] "name_001" "name_026" "name_051" "name_076" "name_101"
    

    【讨论】:

      猜你喜欢
      • 2017-04-30
      • 1970-01-01
      • 2011-10-15
      • 1970-01-01
      • 2010-12-14
      • 1970-01-01
      • 1970-01-01
      • 2012-01-15
      相关资源
      最近更新 更多