Hi,

I think it's because " " is used to pad strings, while 0 is used to
pad numbers*. If your values are always numeric, but stored as
strings, you could use:

> x <- "123"
> sprintf("%05d", as.numeric(x))
[1] "00123"


* From ?sprintf:
    ‘0’ For numbers, pad to the field width with leading zeros.

I think some language implementations allow for specifying different
pad characters, but R's doesn't seem to.

Sarah

On Tue, May 22, 2012 at 2:41 PM, Hui Du <hui...@dataventures.com> wrote:
> Dear All,
>
> This question sounds very simple but I don't know where I am wrong. I just 
> want to pad leading zeros in some string, for example, "123" becomes "00123". 
> What is wrong if I do following?
>
>> sprintf("%05s", "123")
> [1] "  123"
>
>
> It didn't return "00123", instead it padded with 'blank'.
>
>
> Thank you for your help in advance.
>
> HXD
>
>

-- 
Sarah Goslee
http://www.functionaldiversity.org

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to