[R] Beginner's question: number formatting

Prof Brian Ripley ripley at stats.ox.ac.uk
Fri Oct 17 20:11:01 CEST 2008

sprintf("%03d", 2)
formatC(2, width=3, flag="0")

both give

[1] "002"

On Fri, 17 Oct 2008, Michal Figurski wrote:

> Hello R-helpers,
> I have a problem with formatting a single number to show leading zeros. For 
> example, I want "2" displayed as "002".

I hope you meant that you want 2, not "2", so displayed.  Otherwise you 
need as.numeric("2") here.

> My numbers have 1 to 3 digits and I would like them all to display 3 digits 
> for printing. I know I could use "paste" in a loop with several "if"s, but I 
> was wondering if there is a single function that can do this.
> I have tried "format", "prettyNum" and "formatC" back and forth, but these 
> functions don't seem to be able to display leading zeros. Please help.

You will find studying the help more productive than 'tried ... back and 

Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

More information about the R-help mailing list