2012-04-13 49 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))