【问题标题】:Stuffing numbers when converting to characters [duplicate]转换为字符时填充数字[重复]
【发布时间】:2012-04-26 05:16:32
【问题描述】:

我需要将单个数字的向量(例如c(1, 2, 3, 45))转换为字符向量,其中每个项目的长度为2,并且在实际数字之前填充零(例如c("01", "02", "03", "45")

我可以发誓我以前在 R 中用一些聪明的功能做过这个,但我一辈子都找不到它或记住它是什么......我不认为它是 format(),但是我可能会感到惊讶。

TL;DR:

我需要什么函数来转换这个:

c(1, 2, 3, 45)

到这里:

c("01", "02", "03", "45")

?

【问题讨论】:

    标签: r parsing format


    【解决方案1】:

    sprintf 带有填充字符:

    sprintf("%02d",c(1,2,3,45))
    

    您也可以使用formatC,它使用基本相同的一组格式化约定(来自 C 标准库):

    formatC(c(1,2,3,45),flag=0,width=2)
    

    还有,几乎是重复的(抱歉,在我回答之前没看到):

    Format number as fixed width, with leading zeros

    【讨论】:

      【解决方案2】:

      正则表达式怎么样

      sub('(^[0-9]$)','0\\1',c(1,2,3,45))
      

      【讨论】:

        猜你喜欢
        • 2020-05-31
        • 1970-01-01
        • 2019-10-27
        • 2016-09-06
        • 2011-07-01
        • 1970-01-01
        相关资源
        最近更新 更多