[R] sprintf does not fill with "0"?!
Barry Rowlingson
b.rowlingson at lancaster.ac.uk
Mon Sep 15 23:54:39 CEST 2008
2008/9/15 Oliver Bandel <oliver at first.in-berlin.de>:
>> sprintf("%03s", as.character(1:5))
> [1] " 1" " 2" " 3" " 4" " 5"
>>
> =================================================================
>
> There should be a leading "0" isntead of space-chars?!
>
In R, sprintf is a wrapper for the C printf functions, and if you
read the C man page it says this about the 0 prefix:
0
The value should be zero padded. For d, i, o, u, x, X, a, A, e, E, f,
F, g, and G conversions, the converted value is padded on the left
with zeros rather than blanks. If the 0 and - flags both appear, the 0
flag is ignored. For other conversions, the behavior is undefined.
Interestingly R seems to pad with spaces (like yours), but my cygwin C
version pads with zeroes. Such is the nature of undefined behaviour!
Barry
More information about the R-help
mailing list