sink                  package:base                  R Documentation

Send R Output to a File

Description:

     `sink' diverts R output to a connection.

     `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.

Usage:

     sink(file = NULL, append = FALSE, type = c("output", "message"))
     sink.number(type = c("output", "message"))

Arguments:

    file: a 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. Either the output stream or the messages stream.

Details:

     `sink' diverts R output to a connection. If `file' is a character
     string, a file connection with that name will be established for
     the duration of the diversion.

     Normal R output is diverted by the default `type = "output"'. Only
     prompts and warning/error messages continue to appear on the
     terminal. These too can diverted by `type = "message"' (see
     below).

     `sink()' or `sink(file=NULL)' ends the last diversion (of the
     specified type).  As from R version 1.3.0 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 if will be opened if necessary.

     Sink-ing the messages stream should be done only with great care.
     For that stream `file' must be an already open connection, and
     there is no stack of connections.

Value:

     For `sink'.

     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.

Warning:

     Don't use a connection that is open for `sink' for any other
     purpose.  The software will stop you closing one such
     inadvertently.

     Do not sink the messages stream unless you understand the source
     code implementing it and hence the pitfalls.

Examples:

     sink("sink-examp.txt")
     i <- 1:10
     outer(i, i, "*")
     sink()
     unlink("sink-examp.txt")

     ## capture all the output to a file.
     zz <- file("all.Rout", open="wt")
     sink(zz)
     sink(zz, type="message")
     try(log("a"))
     ## back to the console
     sink(type="message")
     sink()
     try(log("a"))

