[ top | up ]

Flexible Formatting

Syntax

formatC(x, digits=NULL, width=max(0,digits)+1,
        format=NULL, flag="", mode=NULL)

Arguments

x an atomic numerical or character object, typically a vector of real numbers.
digits the desired number of digits after the decimal point. Default: 2 for integer, 4 for real numbers. digits < 0 uses the default for C, namely 6 digits.
width the total field width; width < 0 means left justify the number in this field (equivalent to flag ="-"). It is possible that the result will be longer than this, but that should only happen in reasonable cases.
format equal to "d" (for integers), "f", "e", "E", "g", "G" (for `real'), or "s" (for strings). "f" gives numbers in the usual ``xxx.xxx'' format; "e" and "E" give ``n.ddde'' or ``n.dddE'' (scientific format); "g" and "G" put x[i] into scientific format only if it saves space to do so.
flag format modifier as in Kernighan and Ritchie, 2nd ed., p.243. "0" pads leading zeros; "-" does left adjustment, others are "+", " ", and "#".
mode "real", "integer" or "character". Default: Automatic.

Value

A character object of same size and attributes as x. Unlike format, each number is individually formatted. A for loop over each element of x, calling sprintf(...) is done in the C function str_signif.

For character arguments, simple (left or right) padding with white space is done.

Note

This function was originally written by Bill Dunlap and later much improved by Martin Maechler. It was adapted for R by Friedrich Leisch.

See Also

format.

Examples

xx <- pi*10^(-5:4) options(digits=4) # only for format cbind(format(xx), formatC(xx)) cbind(formatC(xx, wid=9, flag='-')) cbind(formatC(xx, dig=5, wid=8, format="f", flag='0')) formatC(c("a", "Abc", "no way"), wid = -7)# - <=> flag = '-'