2012-04-13 25 views
2

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

我可以发誓,我以前在R 2与一些聪明的功能做到了这一点,但我不能为我的生活找到或记住它是什么...我不认为这是format() ,但我可能会感到惊讶

TL; DR:

我需要什么功能转换本:

c(1, 2, 3, 45) 

要这样:

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

感谢,

回答

7

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