formatC {base} | R Documentation |
Formatting numbers individually and flexibly, using C
style
format specifications. format.char
is a helper function for
formatC
.
formatC(x, digits = NULL, width = NULL,
format = NULL, flag = "", mode = NULL,
big.mark = "", big.interval = 3,
small.mark = "", small.interval = 5,
decimal.mark = ".")
format.char(x, width = NULL, flag = "-")
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. If less than 0, the C default of 6 digits is used. |
width |
the total field width; if both |
format |
equal to
|
flag |
format modifier as in Kernighan and Ritchie (1988, page 243).
|
mode |
|
big.mark , big.interval , small.mark , small.interval , decimal.mark |
used for prettying longer decimal sequences, passed to
|
If you set format
it over-rides the setting of mode
, so
formatC(123.45, mode="double", format="d")
gives 123
.
The rendering of scientific format is platform-dependent: some systems
use n.ddde+nnn
or n.dddenn
rather than n.ddde+nn
.
formatC
does not necessarily align the numbers on the decimal
point, so formatC(c(6.11, 13.1), digits=2, format="fg")
gives
c("6.1", " 13")
. If you want common formatting for several
numbers, use format
.
A character object of same size and attributes as x
.
Unlike format
, each number is formatted individually.
Looping over each element of x
, sprintf(...)
is
called (inside the C function str_signif
).
format.char(x)
and formatC
, for character x
, do
simple (left or right) padding with white space.
Originally written by Bill Dunlap, later much improved by Martin Maechler, it was first adapted for R by Friedrich Leisch.
Kernighan, B. W. and Ritchie, D. M. (1988) The C Programming Language. Second edition. Prentice Hall.
format
, sprintf
for more general C like
formatting.
xx <- pi * 10^(-5:4)
dd <- 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"))
format.char(c("a", "Abc", "no way"), wid = -7) # <=> flag = "-"
formatC( c("a", "Abc", "no way"), wid = -7) # <=> flag = "-"
formatC(c((-1:1)/0,c(1,100)*pi), wid=8, dig=1)
xx <- c(1e-12,-3.98765e-10,1.45645e-69,1e-70,pi*1e37,3.44e4)
## 1 2 3 4 5 6
formatC(xx)
formatC(xx, format="fg") # special "fixed" format.
formatC(xx, format="f", dig=80)#>> also long strings
options(dd) # reset