cat
performs much less conversion than print
.
cat(... , file = "", sep = " ", fill = FALSE, labels = NULL, append = FALSE)
""
(the default), cat
prints to the
standard output connection, the console unless redirected by
sink
.
unix
If it is "|cmd"
, the output is piped to the command given
by cmd, by opening a pipe connection.
FALSE
(default), only newlines
created explicitly by "\n" are printed. Otherwise, the
output is broken into lines with print width equal to the option
width
if fill
is TRUE
, or the value of
fill
if this is numeric. Non-positive fill
values are
ignored, with a warning.fill
is FALSE
.file
is the
name of file (and not a connection or "|cmd"
).
If TRUE
output will be appended to
file
; otherwise, it will overwrite the contents of
file
.NULL
).
cat
is useful for producing output in user-defined functions.
It converts its arguments to character vectors, concatenates
them to a single character vector, appends the given sep =
string(s) to each element and then outputs them. No linefeeds are output unless explicitly requested by "\n"
or if generated by filling (if argument fill
is TRUE
or
numeric).
If file
is a connection and open for writing it is written from
its current position. If it is not open, it is opened for the
duration of the call in "wt"
mode and then closed again.
Currently only atomic vectors and names are handled,
together with NULL
and other zero-length objects (which produce
no output). Character strings are output as is (unlike
print.default
which escapes non-printable characters and
backslash --- use encodeString
if you want to output
encoded strings using cat
). Other types of R object should be
converted (e.g. by as.character
or format
)
before being passed to cat
. That includes factors, which are
output as integer vectors.
cat
converts numeric/complex elements in the same way as
print
(and not in the same way as as.character
which is used by the S equivalent), so options
"digits"
and "scipen"
are relevant. However, it uses
the minimum field width necessary for each element, rather than the
same field width for all elements.
print
, format
, and paste
which concatenates into a string.
iter <- stats::rpois(1, lambda = 10)
## print an informative message
cat("iteration = ", iter <- iter + 1, "\n")
## 'fill' and label lines:
cat(paste(letters, 100* 1:26), fill = TRUE, labels = paste0("{", 1:10, "}:"))
Run the code above in your browser using DataLab