4

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

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

TL;博士:

我需要什么功能来转换它:

c(1, 2, 3, 45)

对此:

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

?

4

2 回答 2

10

sprintf带有填充字符:

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

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

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

另外,几乎重复(对不起,在我回答之前没有看到它):

将数字格式化为固定宽度,前导零

于 2012-04-13T20:17:14.637 回答
2

正则表达式怎么样

sub('(^[0-9]$)','0\\1',c(1,2,3,45))
于 2012-04-13T20:44:56.560 回答