Learn R Programming

base (version 3.6.1)

warnings: Print Warning Messages

Description

warnings and its print method print the variable last.warning in a pleasing form.

Usage

warnings(…)

# S3 method for warnings summary(object, …)

# S3 method for warnings print(x, tags, header = ngettext(n, "Warning message:\n", "Warning messages:\n"), …) # S3 method for summary.warnings print(x, …)

Arguments

arguments to be passed to cat (for warnings()).

object

a "warnings" object as returned by warnings().

x

a "warnings" or "summary.warnings" object.

tags

if not missing, a character vector of the same length as x, to “label” the messages. Defaults to paste0(seq_len(n), ": ") for \(n \ge 2\) where n <- length(x).

header

a character string cat()ed before the messages are printed.

Value

warnings() returns an object of S3 class "warnings", basically a named list.

summary(<warnings>) returns a "summary.warnings" object which is basically the list of unique warnings (unique(object)) with a "counts" attribute, somewhat experimentally.

Warning

It is undocumented where last.warning is stored nor that it is visible, and this is subject to change.

Details

See the description of options("warn") for the circumstances under which there is a last.warning object and warnings() is used. In essence this is if options(warn = 0) and warning has been called at least once.

Note that the length(last.warning) is maximally getOption("nwarnings") (at the time the warnings are generated) which is 50 by default. To increase, use something like

  options(nwarnings = 10000)  

It is possible that last.warning refers to the last recorded warning and not to the last warning, for example if options(warn) has been changed or if a catastrophic error occurred.

References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

See Also

warning.

Examples

Run this code
# NOT RUN {
## NB this example is intended to be pasted in,
##    rather than run by example()
ow <- options("warn")
for(w in -1:1) {
   options(warn = w); cat("\n warn =", w, "\n")
   for(i in 1:3) { cat(i,"..\n"); m <- matrix(1:7, 3,4) }
   cat("--=--=--\n")
}
## at the end prints all three warnings, from the 'option(warn = 0)' above
options(ow) # reset to previous, typically 'warn = 0'
tail(warnings(), 2) # see the last two warnings only (via '[' method)

## Often the most useful way to look at many warnings:
summary(warnings())
# }
# NOT RUN {
op <- options(nwarnings = 10000) ## <- get "full statistics"
x <- 1:36; for(n in 1:13) for(m in 1:12) A <- matrix(x, n,m) # There were 105 warnings ...
summary(warnings())
options(op) # revert to previous (keeping 50 messages by default)
# }

Run the code above in your browser using DataLab