ID EN
Math Functions

sink

R Base 3.6.2

sink diverts R output to a connection (and stops such diversions). sink.number() reports how many diversions are in use. sink.number(type = "message") reports the number of the connection currently being used for error messages.

Syntax

R
sink(file = NULL, append = FALSE, type = c("output", "message"),
     split = FALSE)<p></p><p>sink.number(type = c("output", "message"))</p>

Arguments

Parameter Description
file a writable connection or a character string naming the file to write to, or NULL to stop sink-ing.
append logical. If TRUE, output will be appended to file; otherwise, it will overwrite the contents of file.
type character string. Either the output stream or the messages stream. The name will be partially matched so can be abbreviated.
split logical: if TRUE, output will be sent to the new sink and to the current output stream, like the Unix program tee.

Return Value

sink returns NULL. For sink.number() the number (0, 1, 2, …) of diversions of output in place. For sink.number("message") the connection number used for messages, 2 if no diversion has been used.

Details

sink diverts R output to a connection (and must be used again to finish such a diversion, see below!). If file is a character string, a file connection with that name will be established for the duration of the diversion. Normal R output (to connection stdout) is diverted by the default type = "output". Only prompts and (most) messages continue to appear on the console. Messages sent to stderr() (including those from message, warning and stop) can be diverted by sink(type = "message") (see below). sink() or sink(file = NULL) ends the last diversion (of the specified type). There is a stack of diversions for normal output, so output reverts to the previous diversion (if there was one). The stack is of up to 21 connections (20 diversions). If file is a connection it will be opened if necessa

Examples

Example
R
# NOT RUN {
sink("sink-examp.txt")
i <- 1:10
outer(i, i, "*")
sink()
# }
# NOT RUN {
<!-- % don't show what confuses newbies -->
# }
# NOT RUN {
## capture all the output to a file.
zz <- file("all.Rout", open = "wt")
sink(zz)
sink(zz, type = "message")
try(log("a"))
## revert output back to the console -- only then access the file!
sink(type = "message")
sink()
file.show("all.Rout")
# }

See Also

capture.output