sprintf
Generate C-Style Formatted Output
Description
Combines numbers and strings into a formatted string.
Usage
sprintf(fmt, ...)
gettextf(fmt, ..., domain = NULL)
Arguments
fmt |
a format string as used by the standard C sprintf function.
(Note that not all features are supported.)
Each % (except %%) indicates that the start of a conversion
specification for one of the ... arguments. See the Details
section below for more information. If translation is enabled, the
fmt string is translated by the function gettext when
used in a call to gettextf.
|
... |
as in the C sprintf function, the arguments after the format string
correspond to the % conversion specifications in the format string.
Usually each conversion specification refers to one ... argument,
but if the conversion specification contains asterisks (*), then each *
refers to one ... argument.
|
domain |
the domain to use for language translation.
This argument is ignored in this engine version.
|
Details
The conversion specifiers start with a % and end with one
of the following conversion characters:
"s" string
"d" signed decimal integer
"i" signed decimal integer
"o" octal integer
"x" hexadecimal integer
"X" hexadecimal integer, with capital A-F
"f" floating point number; no scientific notation
"g" floating point number; use e+exponent scientific notation
if it would be shorter
"G" floating point number; use E+exponent scientific notation
if it would be shorter
"e" floating point number; e+exponent scientific notation
"E" floating point number; E+exponent scientific notation
The conversion character can be preceded by minwidth.precision where
minwidth and precision are both integers and neither must
be present. Their precise meaning depends on the conversion character, but
usually minwidth gives the minimum number of characters to use and
precision gives details like the number of significant digits,
the number of digits after the decimal point, or the maximum number
of characters to use. See a C language manual for details.
Either minwidth or precision (but not both) can be given as
"*", indicating to use the next argument in the ... list as the
value. Thus, one conversion specification can use one or two arguments
from the ... list, depending the presence of the asterisk.
The conversion character (along with possible minwidth.precision)
can be preceded by single character flags, whose meaning
depends on the conversion character. For example, for "d", a
"0" means to fill the space before the most significant digit with
0s and a "+" means to precede positive numbers with a plus
sign. See a C language manual for details.
The C standard allows the % specifier to start with "%n\$"
for a number "n", meaning that the specifier refers to the
nth ... argument.
Because Native Language Support and support for domains are not included
in this version, calling gettextf gives the same result as calling
sprintf.
Value
returns a vector of formatted strings. The length of the output vector is the
length of the longest argument; shorter arguments are
recycled to the length of the longest. However, if any
argument is 0 long, the output is also 0 long.
See Also
Examples
sprintf("pi is about %4.2f", asin(1)*2)
# [1] "pi is about 3.14"
sprintf("Hex for decimal %2d is 0x%02x", c(3,19,40), c(3,19,40))
# [1] "Hex for decimal 3 is 0x03" "Hex for decimal 19 is 0x13"
# [3] "Hex for decimal 40 is 0x28"
# vector for formats, one number to format
sprintf(c("%d","%x","%o"), 46)
# [1] "46" "2e" "56"
# vary number of significant digits
sprintf("%12.*g", 2:10, exp(10))
# [1] " 2.2e+04" " 2.2e+04"
# [3] " 2.203e+04" " 22026"
# [5] " 22026.5" " 22026.47"
# [7] " 22026.466" " 22026.4658"
# [9] " 22026.46579"
cat(sep="\n", sprintf("\"%4.4s\" is 4 letter abbreviation for %1$s.",
c("A","Alabama")))
# " A" is 4 letter abbreviation for A.
# "Alab" is 4 letter abbreviation for Alabama.