Rev 87961 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
% File src/library/base/man/options.Rd% Part of the R package, https://www.R-project.org% Copyright 1995-2025 R Core Team% Distributed under GPL 2 or later\name{options}\alias{options}\alias{.Options}\alias{getOption}\alias{option} % so help files can do 'set \link{} \code{"foo"}'\alias{MC_CORES}\alias{R_C_BOUNDS_CHECK}\alias{R_DEFAULT_DEVICE}\alias{R_KEEP_PKG_SOURCE}\alias{R_INTERACTIVE_DEVICE}\title{Options Settings}\description{Allow the user to set and examine a variety of global \emph{options}which affect the way in which \R computes and displays its results.}\usage{options(\dots)getOption(x, default = NULL).Options}%%-- NOTE : Keep the list up-to-date,%%-- ==== Consider also the leading comments in ../../../main/options.c\arguments{\item{\dots}{any options can be defined, using \code{name = value}.However, only the ones below are used in base \R.Options can also be passed by giving a single unnamed argument whichis a named list.}\item{x}{a character string holding an option name.}\item{default}{if the specified option is not set in the options list,this value is returned. This facilitates retrieving an option andchecking whether it is set and setting it separately if not.}}\details{Invoking \code{options()} with no arguments returns a list with thecurrent values of the options. Note that not all options listed beloware set initially. To access the value of a single option, one shoulduse, e.g., \code{getOption("width")} rather than\code{options("width")} which is a \emph{list} of length one.}\note{For compatibility with S there is a visible object \code{.Options} whosevalue is a pairlist containing the current \code{options()} (in noparticular order). Assigning to it will make a local copy and notchange the original. (\emph{Using} it however is faster than calling\code{options()}).An option set to \code{NULL} is indistinguishable from a non existingoption.}\value{For \code{getOption}, the current value set for option \code{x}, or\code{default} (which defaults to \code{NULL}) if the option is unset.For \code{options()}, a list of all set options sorted by name. For\code{options(name)}, a list of length one containing the set value,or \code{NULL} if it is unset. For uses setting one or more options,a list with the previous values of the options changed (returnedinvisibly).}\section{Options used in base \R}{\describe{\item{\code{add.smooth}:}{typically logical, defaulting to\code{TRUE}. Could also be set to an integer for specifying howmany (simulated) smooths should be added. This is currently onlyused by \code{\link{plot.lm}}.}\item{\code{askYesNo}:}{a function (typically set by a front-end)to ask the user binary response functions in a consistent way,or a vector of strings used by \code{\link{askYesNo}} to useas default responses for such questions.}\item{\code{browserNLdisabled}:}{logical: whether newline isdisabled as a synonym for \code{"n"} in the browser.}\item{\code{catch.script.errors}:}{logical, false by default. Iftrue \emph{and} \code{\link{interactive}()} is false, e.g., when an\R script is run by \code{R CMD \link{BATCH} <script>.R}, thenerrors do \emph{not} stop execution of the script. Rather evaluationcontinues after printing the error (and jumping to top level).Also, \code{\link{traceback}()} would provide info about the error.Do use with care!}\item{\code{checkPackageLicense}:}{logical, not set by default. Iftrue, \code{\link{loadNamespace}} asks a user to accept anynon-standard license at first load of the package.}\item{\code{check.bounds}:}{logical, defaulting to \code{FALSE}. Iftrue, a \link{warning} is produced whenever avector (atomic or \code{\link{list}}) is extended, by somethinglike \code{x <- 1:3; x[5] <- 6}.}\item{\code{CBoundsCheck}:}{logical, controlling whether\code{\link{.C}} and \code{\link{.Fortran}} make copies to check forarray over-runs on the atomic vector arguments.Initially set from value of the environment variable\env{R_C_BOUNDS_CHECK} (set to \code{yes} to enable).}\item{\code{conflicts.policy}:}{character string or list controllinghandling of conflicts found in calls to \code{\link{library}} or\code{\link{require}}. See \code{\link{library}} for details.}\item{\code{continue}:}{a non-empty string setting the prompt usedfor lines which continue over one line.}%% default is set in ../../profile/Common.R :\item{\code{defaultPackages}:}{the packages that are attached bydefault when \R starts up. Initially set from the value of theenvironment variable \env{R_DEFAULT_PACKAGES}, or if that is unsetto \code{c("datasets", "utils", "grDevices", "graphics", "stats","methods")}. (Set \env{R_DEFAULT_PACKAGES} to \code{NULL} ora comma-separated list of package names.)This option can be changed in a \file{.Rprofile} file, but it willnot work to exclude the \pkg{methods} package at this stage, asthe value is screened for \pkg{methods} before that file is read.}\item{\code{deparse.cutoff}:}{integer value controlling theprinting of language constructs which are \code{\link{deparse}}d.Default \code{60}.}\item{\code{deparse.max.lines}:}{controls the number of lines usedwhen deparsing in \code{\link{browser}}, upon entry to a functionwhose debugging flag is set, and if option \code{traceback.max.lines}is unset, of \code{\link{traceback}()}. Initially unset, and onlyused if set to a positive integer.}\item{\code{traceback.max.lines}:}{controls the number of lines usedwhen deparsing in \code{\link{traceback}}, if set.Initially unset, and only used if set to a positive integer.}\item{\code{digits}:}{controls the number of \emph{significant} (see \code{\link{signif}}) digits toprint when printing numeric values. It is a suggestion only.Valid values are 1\dots{}22 with default 7. See the note in\code{\link{print.default}} about values greater than 15.}\item{\code{digits.secs}:}{controls the maximum number of digits toprint when formatting time values in seconds. Valid valuesare 0\dots6 with default 0 (equivalent to \code{NULL} which is usedwhen it is undefined as on vanilla startup). See \code{\link{strftime}}.}\item{\code{download.file.extra}:}{Extra command-line argument(s) fornon-default methods: see \code{\link{download.file}}.}\item{\code{download.file.method}:}{Method to be used for\code{download.file}. Currently download methods\code{"internal"}, \code{"wininet"} (Windows only),\code{"libcurl"}, \code{"wget"} and \code{"curl"} are available.If not set, \code{method = "auto"}is chosen: see \code{\link{download.file}}.}\item{\code{echo}:}{logical. Only used in non-interactive mode,when it controls whether input is echoed. Command-line option\option{--no-echo} sets this to \code{FALSE}, but otherwiseit starts the session as \code{TRUE}.}\item{\code{encoding}:}{The name of an encoding, default\code{"native.enc"}. See \code{\link{connections}}.}\item{\code{error}:}{either a function or an expression governingthe handling of non-catastrophic errors such as those generated by\code{\link{stop}} as well as by signals and internally detectederrors. If the option is a function, a call to that function,with no arguments, is generated as the expression. By defaultthe option is not set: see \code{\link{stop}} for the behaviour inthat case. The functions \code{\link{dump.frames}} and\code{\link{recover}} provide alternatives that allow post-mortemdebugging. Note that these need to specified ase.g.\sspace{}\code{options(error = utils::recover)} in startupfiles such as \file{\link{.Rprofile}}.}\item{\code{expressions}:}{sets a limit on the number of nestedexpressions that will be evaluated. Valid values are25\dots500000 with default 5000. If you increase it, you mayalso want to start \R with a larger protection stack;see \option{--max-ppsize} in \code{\link{Memory}}. Note too thatyou may cause a segfault from overflow of the C stack, and on OSeswhere it is possible you may want to increase that. Once thelimit is reached an error is thrown. The current number underevaluation can be found by calling \code{\link{Cstack_info}}.}\item{\code{interrupt}:}{a function taking no arguments to be calledon a user interrupt if the interrupt condition is not otherwisehandled.}\item{\code{keep.parse.data}:}{When internally storing source code(\code{keep.source} is TRUE), also store parse data. Parse data canthen be retrieved with \code{\link{getParseData}()} and used e.g. forspell checking of string constants or syntax highlighting. The valuehas effect only when internally storing source code (see\code{keep.source}). The default is \code{TRUE}.}\item{\code{keep.parse.data.pkgs}:}{As for \code{keep.parse.data}, usedonly when packages are installed. Defaults to \code{FALSE} unless theenvironment variable \env{R_KEEP_PKG_PARSE_DATA} is set to \code{yes}.The space overhead of parse data can be substantial even aftercompression and it causes performance overhead when loading packages.}\item{\code{keep.source}:}{When \code{TRUE}, the source code forfunctions (newly defined or loaded) is stored internallyallowing comments to be kept in the right places. Retrieve thesource by printing or using \code{deparse(fn, control ="useSource")}.The default is \code{\link{interactive}()}, i.e., \code{TRUE} forinteractive use.}%% used by tools::makeLazyLoading\item{\code{keep.source.pkgs}:}{As for \code{keep.source}, used onlywhen packages are installed. Defaults to \code{FALSE} unless theenvironment variable \env{R_KEEP_PKG_SOURCE} is set to \code{yes}.}\item{\code{matprod}:}{a string selecting the implementation ofthe matrix products \code{\link{\%*\%}}, \code{\link{crossprod}}, and\code{\link{tcrossprod}} for double and complex vectors:\describe{\item{\code{"internal"}}{uses an unoptimized 3-loop algorithmwhich correctly propagates \code{\link{NaN}} and\code{\link{Inf}} values and is consistent in precision withother summation algorithms inside \R like \code{\link{sum}} or\code{\link{colSums}} (which now means that it uses a \code{longdouble} accumulator for summation if available and enabled,see \code{\link{capabilities}}).}\item{\code{"default"}}{uses BLAS to speed up computation, butto ensure correct propagation of \code{NaN} and \code{Inf}values it uses an unoptimized 3-loop algorithm for inputs that maycontain \code{NaN} or \code{Inf} values. When deemedbeneficial for performance, \code{"default"} may call the3-loop algorithm unconditionally, i.e., without checking theinput for \code{NaN}/\code{Inf} values. The 3-loop algorithm uses(only) a \code{double} accumulator for summation, which isconsistent with the reference BLAS implementation.}\item{\code{"blas"}}{uses BLAS unconditionally without anychecks and should be used with extreme caution. BLASlibraries do not propagate \code{\link{NaN}} or\code{\link{Inf}} values correctly and for inputs with\code{NaN}/\code{Inf} values the results may be undefined.}\item{\code{"default.simd"}}{is experimental and will likely beremoved in future versions of \R. It provides the same behavioras \code{"default"}, but the check whether the input contains\code{NaN}/\code{Inf} values is faster on some \abbr{SIMD} hardware.On older systems it will run correctly, but may be much slower than\code{"default"}.}}}\item{\code{max.print}:}{integer, defaulting to \code{99999}.\code{\link{print}} or \code{\link{show}} methods can make use ofthis option, to limit the amount of information that is printed,to something in the order of (and typically slightly less than)\code{max.print} \emph{entries}.}\item{\code{OutDec}:}{character string containing a singlecharacter. The preferred character to be used as the decimalpoint in output conversions, that is in printing, plotting,\code{\link{format}}, \code{\link{formatC}} and\code{\link{as.character}} but not whendeparsing nor by \code{\link{sprintf}}(which is sometimes used prior to printing).}\item{\code{pager}:}{the command used for displaying text files by\code{\link{file.show}}, details depending on the platform:\describe{\item{On a unix-alike}{defaults to \file{\var{\link{R_HOME}}/bin/pager}, which is a shellscript running the command-line specified by the environmentvariable \env{PAGER} whose default is set at configuration,usually to \command{less}.}\item{On Windows}{defaults to \code{"internal"}, which uses a pager similar to theGUI console. Another possibility is \code{"console"} to use theconsole itself.}}Can be a character string or an \R function, in which case itneeds to accept the arguments \code{(files, header,title, delete.file)} corresponding to the first four arguments of\code{\link{file.show}}.}\item{\code{papersize}:}{the default paper format used by\code{\link{postscript}}; set by environment variable\env{R_PAPERSIZE} when \R is started: if that is unset or invalidit defaults platform dependently\describe{\item{on a unix-alike}{to a value derived from the locale category\code{LC_PAPER}, or if that is unavailable to a default setwhen \R was built.}\item{on Windows}{to \code{"a4"}, or \code{"letter"} in US andCanadian locales.}}}\item{\code{PCRE_limit_recursion}:}{Logical: should\code{\link{grep}(perl = TRUE)} and similar limit the maximalrecursion allowed when matching? Only relevant for \I{PCRE1} and\I{PCRE2} <= 10.23.\I{PCRE} can be built not to use a recursion stack (see\code{\link{pcre_config}}), but it uses recursion by default witha recursion limit of 10000000 which potentially needs a very largeC stack: see the discussion at\url{https://www.pcre.org/original/doc/html/pcrestack.html}. Iftrue, the limit is reduced using \R's estimate of the C stack sizeavailable (if known), otherwise 10000. If \code{NA}, the limit isimposed only if any input string has 1000 or more bytes. Thelimit has no effect when PCRE{}'s Just-in-Time compiler is used.}\item{\code{PCRE_study}:}{Logical or integer: should\code{\link{grep}(perl = TRUE)} and similar \sQuote{study} thepatterns? Either logical or a numerical threshold for the minimumnumber of strings to be matched for the pattern to be studied (thedefault is \code{10})). Missing values and negative numbers aretreated as false. This option is ignored with PCRE2 (PCRE version >=10.00) which does not have a separate study phase and patterns areautomatically optimized when possible.}\item{\code{PCRE_use_JIT}:}{Logical: should \code{\link{grep}(perl =TRUE)}, \code{\link{strsplit}(perl = TRUE)} and similar make useof PCRE{}'s Just-In-Time compiler if available? (This applies only tostudied patterns with PCRE1.) Default: true. Missing values aretreated as false.}\item{\code{pdfviewer}:}{default PDF viewer.The default is set from the environment variable \env{R_PDFVIEWER},the default value of which\describe{\item{on a unix-alike}{is set when \R is configured, and}\item{on Windows}{is the full path to \command{open.exe}, a utilitysupplied with \R.}}}\item{\code{printcmd}:}{the command used by \code{\link{postscript}}for printing; set by environment variable \env{R_PRINTCMD} when\R is started. This should be a command that expects either inputto be piped to \file{stdin} or to be given a single filenameargument. Usually set to \code{"lpr"} on a Unix-alike.}\item{\code{prompt}:}{a non-empty string to be used for \R's prompt;should usually end in a blank (\code{" "}).}% verbatim, for checking " \t\n\"\\'`><=%;,|&{()}"\item{\code{rl_word_breaks}:}{(Unix only:) Used for the \I{readline}-based terminalinterface. Default value \code{" \\t\\n\\"\\\\'`><=\%;,|&{()}"}.%"This is the set of characters use to break the input line intotokens for object- and file-name completion. Those who do not usespaces around operators may prefer\cr\code{" \\t\\n\\"\\\\'`><=+-*\%;,|&{()}"}%"}\item{\code{save.defaults}, \code{save.image.defaults}:}{see \code{\link{save}}.}\item{\code{scipen}:}{integer. A penalty to be appliedwhen deciding to print numeric values in fixed or exponentialnotation. Positive values bias towards fixed and negative towardsscientific notation: fixed notation will be preferred unless it ismore than \code{scipen} digits wider. The default is \code{0}.Valid values are between -9 and 9999 where \dQuote{relevant} values(for double precision accuracy) are in \code{-6:319}.Some invalid values currently signal a \code{\link{warning}} and are setto legal boundaries if finite. These may signal an error in a futureversion of \R.}\item{\code{setWidthOnResize}:}{a logical. If set and \code{TRUE}, \Rrun in a terminal using a recent \code{readline} library will setthe \code{width} option when the terminal is resized.}\item{\code{showWarnCalls}, \code{showErrorCalls}:}{a logical.Should warning and error messages produced by the default handlersshow a summary of the call stack? By default error call stacksare shown in non-interactive sessions. When \code{\link{warning}}or \code{\link{stop}} are called on a condition object the callstacks are only shown if the value returned by\code{\link{conditionCall}} for the condition object is not\code{NULL}.}\item{\code{showNCalls}:}{integer. Controls how long the sequenceof calls must be (in bytes) before ellipses are used. Defaults to50 and should be at least 30 and no more than 500.}\item{\code{show.error.locations}:}{Should source locations oferrors be printed? If set to \code{TRUE} or \code{"top"}, thesource location that is highest on the stack (the most recentcode with source information) will be printed.}\item{\code{show.error.messages}:}{a logical. Should error messagesbe printed? Intended for use with \code{\link{try}} or auser-installed error handler.}%% \item{\code{stringsAsFactors}:}{The default setting for%% \code{\link{default.stringsAsFactors}}, which in \R < 4.1.0 was%% used to provide the default values of the \code{stringsAsFactors}%% argument of \code{\link{data.frame}} and \code{\link{read.table}}.}\item{\code{texi2dvi}:}{used by functions\code{\link{texi2dvi}} and \code{\link{texi2pdf}} in package \pkg{tools}.\describe{\item{unix-alike only:}{Set at startup from the environment variable \env{R_TEXI2DVICMD},which defaults first to the value of environment variable\env{TEXI2DVI}, and then to a value set when \R was installed (thefull path to a \command{texi2dvi} script if one was found). Ifnecessary, that environment variable can be set to\code{"emulation"}.} }}\item{\code{timeout}:}{positive integer. The timeout for someInternet operations, in seconds. Default 60 (seconds) but can beset from environment variable\env{R_DEFAULT_INTERNET_TIMEOUT}. (Invalid values of the option orthe variable are silently ignored: non-integer numeric values willbe truncated.) See \code{\link{download.file}} and\code{\link{connections}}.}\item{\code{topLevelEnvironment}:}{see \code{\link{topenv}} and\code{\link{sys.source}}.}\item{\code{url.method}:}{character string: the default method for\code{\link{url}}. Normally unset, which is equivalent to\code{"default"}, which is \code{"internal"} except on Windows.}\item{\code{useFancyQuotes}:}{controls the use ofdirectional quotes in \code{\link{sQuote}}, \code{dQuote} and inrendering text help (see \code{\link{Rd2txt}} in package\pkg{tools}). Can be \code{TRUE}, \code{FALSE}, \code{"TeX"} or\code{"UTF-8"}.}\item{\code{verbose}:}{logical. Should \R report extra informationon progress? Set to \code{TRUE} by the command-line option\option{--verbose}.}\item{\code{warn}:}{integer value to set the handling of warningmessages by the default warning handler. If\code{warn} is negative all warnings are ignored. If \code{warn}is zero (the default) warnings are stored until the top--levelfunction returns. If 10 or fewer warnings were signalled theywill be printed otherwise a message saying how many weresignalled. An object called \code{last.warning} iscreated and can be printed through the function\code{\link{warnings}}. If \code{warn} is one, warnings areprinted as they occur. If \code{warn} is two (or larger, coercibleto integer), all warnings are turned into errors. While sometimesuseful for debugging, turning warnings into errors may triggerbugs and resource leaks that would not have been triggered otherwise.}\item{\code{warnPartialMatchArgs}:}{logical. If true, warns ifpartial matching is used in argument matching.}\item{\code{warnPartialMatchAttr}:}{logical. If true, warns ifpartial matching is used in extracting attributes via\code{\link{attr}}.}\item{\code{warnPartialMatchDollar}:}{logical. If true, warns ifpartial matching is used for extraction by \code{$}.}\item{\code{warning.expression}:}{an \R code expression to be calledif a warning is generated, replacing the standard message. Ifnon-null it is called irrespective of the value of option\code{warn}.}\item{\code{warning.length}:}{sets the truncation limit in bytes for errorand warning messages. A non-negative integer, with allowed values100\dots8170, default 1000.}\item{\code{nwarnings}:}{the limit for the number of warnings keptwhen \code{warn = 0}, default 50. This will discard messages ifcalled whilst they are being collected. If you increase thislimit, be aware that the current implementation pre-allocatesthe equivalent of a named list for them, i.e., do not increase it tomore than say a million.}\item{\code{width}:}{controls the maximum number of columns on aline used in printing vectors, matrices and arrays, and whenfilling by \code{\link{cat}}.Columns are normally the same as characters except in East Asianlanguages.You may want to change this if you re-size the window that \R isrunning in. Valid values are 10\dots10000 with default normally80. (The limits on valid values are in file \file{Print.h} and can bechanged by re-compiling \R.) Some \R consoles automatically changethe value when they are resized.See the examples on \link{Startup} for one way to set thisautomatically from the terminal width when \R is started.}}The \sQuote{factory-fresh} default settings of some of these options are\tabular{ll}{\code{add.smooth} \tab \code{TRUE}\cr\code{check.bounds} \tab \code{FALSE}\cr\code{continue} \tab \code{"+ "}\cr\code{digits} \tab \code{7}\cr\code{echo} \tab \code{TRUE}\cr\code{encoding} \tab \code{"native.enc"}\cr\code{error} \tab \code{NULL}\cr\code{expressions} \tab \code{5000}\cr\code{keep.source} \tab \code{interactive()}\cr\code{keep.source.pkgs} \tab \code{FALSE}\cr\code{max.print} \tab \code{99999}\cr\code{OutDec} \tab \code{"."}\cr\code{prompt} \tab \code{"> "}\cr\code{scipen} \tab \code{0} \cr\code{show.error.messages} \tab \code{TRUE}\cr\code{timeout} \tab \code{60}\cr\code{verbose} \tab \code{FALSE}\cr\code{warn} \tab \code{0}\cr\code{warning.length} \tab \code{1000}\cr\code{width} \tab \code{80}\cr}Others are set from environment variables or are platform-dependent.}\section{Options set in package \pkg{grDevices}}{These will be set when package \pkg{grDevices} (or its namespace)is loaded if not already set.\describe{\item{\code{bitmapType}:}{(Unix only, incl. macOS) character. Thedefault type for thebitmap devices such as \code{\link{png}}. Defaults to\code{"cairo"} on systems where that is available, or to\code{"quartz"} on macOS where that is available.}\item{\code{device}:}{a character string givingthe name of a function, or the function object itself,which when called creates a new graphics device of the defaulttype for that session. The value of this option defaults to thenormal screen device (e.g., \code{X11}, \code{windows} or\code{quartz}) for an interactive session, and \code{pdf}in batch use or if a screen is not available. If set to the nameof a device, the device is looked for first from the globalenvironment (that is down the usual search path) and then in the\pkg{grDevices} namespace.The default values in interactive and non-interactive sessions areconfigurable via environment variables\env{R_INTERACTIVE_DEVICE} and \env{R_DEFAULT_DEVICE}respectively.The search logic for \sQuote{the normal screen device} is thatthis is \code{windows} on Windows, and \code{quartz} if availableon macOS (running at the console, and compiled into the build).Otherwise \code{X11} is used if environment variable \env{DISPLAY}is set.}\item{\code{device.ask.default}:}{logical. The default for\code{\link{devAskNewPage}("ask")} when a device is opened.}\item{\code{locatorBell}:}{logical. Should selection in \code{locator}and \code{identify} be confirmed by a bell? Default \code{TRUE}.Honoured at least on \code{X11} and \code{windows} devices.}\item{\code{windowsTimeouts}:}{(Windows-only) integer vector of length 2representing two times in milliseconds. These control thedouble-buffering of \code{\link{windows}} devices when that isenabled: the first is the delay after plotting finishes(default 100) and the second is the update interval duringcontinuous plotting (default 500). The values at the time thedevice is opened are used.}}}\section{Other options used by package \pkg{graphics}}{\describe{\item{\code{max.contour.segments}:}{positive integer, defaulting to\code{25000} if not set. A limit on the number ofsegments in a single contour line in \code{\link{contour}} or\code{\link{contourLines}}.}}}\section{Options set (or used) in package \pkg{stats}}{Most of these will be set when package \pkg{stats} (or its namespace)is loaded if not already set.\describe{\item{\code{contrasts}:}{the default \code{\link{contrasts}} used inmodel fitting such as with \code{\link{aov}} or \code{\link{lm}}.A character vector of length two, the first giving the function tobe used with unordered factors and the second the function to beused with ordered factors. By default the elements are named\code{c("unordered", "ordered")}, but the names are unused.}\item{\code{na.action}:}{the name of a function for treating missingvalues (\code{\link{NA}}'s) for certain situations, see\code{\link{na.action}} and \code{\link{na.pass}}.}\item{\code{show.coef.Pvalues}:}{logical, affecting whether Pvalues are printed in summary tables of coefficients. See\code{\link{printCoefmat}}.}\item{\code{show.nls.convergence}:}{logical, should \code{\link{nls}}convergence messages be printed for successful fits?Initially unset, which means \code{TRUE}.}\item{\code{show.signif.stars}:}{logical, should stars be printed onsummary tables of coefficients? See \code{\link{printCoefmat}}.}\item{\code{str.dendrogram.last}:}{see \code{\link{str.dendrogram}}.}\item{\code{ts.eps}:}{the relative tolerance for certain time series(\code{\link{ts}}) computations. Default \code{1e-05}.}\item{\code{ts.S.compat}:}{logical. Used to select S compatibilityfor plotting time-series spectra. See the description of argument\code{log} in \code{\link{plot.spec}}.}}}\section{Options set (or used) in package \pkg{utils}}{Many of these will be set when package \pkg{utils} (or its namespace)is loaded if not already set.% apart from, e.g., "ccaddress", "help.ports", "help_type",% "help.htmlmath", "help.htmltoc", "install.lock", "Ncpus"\describe{\item{\code{BioC_mirror}:}{The URL of a Bioconductor mirrorfor use by \code{\link{setRepositories}},e.g.\sspace{}the default \samp{"https://bioconductor.org"}or the European mirror\samp{"https://bioconductor.statistik.tu-dortmund.de"}. Can be setby \code{\link{chooseBioCmirror}}.}\item{\code{browser}:}{The HTML browser to be used by\code{\link{browseURL}}. This sets the default browser on UNIX ora non-default browser on Windows. Alternatively, an \R functionthat is called with a URL as its argument. See\code{\link{browseURL}} for further details.}\item{\code{ccaddress}:}{default Cc: address used by\code{\link{create.post}} (and hence \code{\link{bug.report}} and\code{\link{help.request}}). Can be \code{FALSE} or \code{""}.}\item{\code{citation.bibtex.max}:}{default 1; the maximal number of\I{bibentries} (\code{\link{bibentry}}) in a \code{\link{citation}} forwhich the BibTeX version is printed in addition to the text one.}\item{\code{de.cellwidth}:}{integer: the cell widths (number ofcharacters) to be used in the data editor \code{\link{dataentry}}.If this is unset (the default), 0, negative or \code{NA}, variablecell widths are used.}\item{\code{demo.ask}:}{default for the \code{ask} argument of\code{\link{demo}}.}\item{\code{editor}:}{a non-empty character string or an \R functionthat sets the default text editor, e.g., for \code{\link{edit}}and \code{\link{file.edit}}. Set from the environment variable\env{EDITOR} on UNIX, or if unset \env{VISUAL} or \command{vi}.As a string it should specify the name of or path to an externalcommand.}\item{\code{example.ask}:}{default for the \code{ask} argument of\code{\link{example}}.}\item{\code{help.ports}:}{optional integer vector for setting portsof the internal HTTP server, see \code{\link{startDynamicHelp}}.}\item{\code{help.search.types}:}{default types of documentationto be searched by \code{\link{help.search}} and \code{\link{??}}.}\item{\code{help.try.all.packages}:}{default for an argument of\code{\link{help}}.}\item{\code{help_type}:}{default for an argument of\code{\link{help}}, used also as the help type by \code{\link{?}}.}\item{\code{help.htmlmath}:}{default for the \code{texmath} argumentof \code{\link{Rd2HTML}}, controlling how LaTeX-like mathematicalequations are displayed in R help pages (if enabled). Usefulvalues are \code{"katex"} (equivalent to \code{NULL}, the default)and \code{"mathjax"}; for all other values basic substitutions areused. }\item{\code{help.htmltoc}:}{default for the \code{toc} argumentof \code{\link{Rd2HTML}}, controlling whether a table of contentsshould be included. }\item{\code{HTTPUserAgent}:}{string used as the \sQuote{user agent} inHTTP(S) requests by \code{\link{download.file}}, \code{\link{url}}and \code{\link{curlGetHeaders}}, or \code{NULL} when requests willbe made without a user agent header. The default is\code{"R (\var{version} \var{platform} \var{arch} \var{os})"}except when \samp{libcurl} is used when it is\code{"libcurl/\var{version}"} for the \samp{libcurl} version in use.}\item{\code{install.lock}:}{logical: should per-directory packagelocking be used by \code{\link{install.packages}}? Most usefulfor binary installs on macOS and Windows, but can be used in astartup file for source installs \emph{via}\command{R CMD \link{INSTALL}}. For binary installs, can also bethe character string \code{"pkglock"}.}\item{\code{internet.info}:}{The minimum level of information to beprinted on URL downloads etc, using the \code{"internal"} and\code{"libcurl"} methods.Default is 2, for failure causes. Set to 1 or 0 to get moredetailed information (for the \code{"internal"} method 0 providesmore information than 1).}\item{\code{install.packages.check.source}:}{Used by\code{\link{install.packages}} (and indirectly\code{\link{update.packages}}) on platforms which support binarypackages. Possible values \code{"yes"} and \code{"no"}, withunset being equivalent to \code{"yes"}.}\item{\code{install.packages.compile.from.source}:}{Used by\code{\link{install.packages}(type = "both")} (and indirectly\code{\link{update.packages}}) on platforms whichsupport binary packages. Possible values are \code{"never"},\code{"interactive"} (which means ask in interactive use and\code{"never"} in batch use) and \code{"always"}. The default istaken from environment variable\env{R_COMPILE_AND_INSTALL_PACKAGES}, with default\code{"interactive"} if unset. However, \code{install.packages}uses \code{"never"} unless a \command{make} program is found,consulting the environment variable \env{MAKE}.}\item{\code{mailer}:}{default emailing method used by\code{\link{create.post}} and hence \code{\link{bug.report}} and\code{\link{help.request}}.}\item{\code{menu.graphics}:}{Logical: should graphical menus be usedif available? Defaults to \code{TRUE}. Currently applies to\code{\link{select.list}}, \code{\link{chooseCRANmirror}},\code{\link{setRepositories}} and to select from multiple (text)help files in \code{\link{help}}.}\item{\code{Ncpus}:}{an integer \eqn{n \ge 1}{n >= 1}, used in\code{\link{install.packages}} as default for the number of CPUsto use in a potentially parallel installation, as\code{Ncpus = getOption("Ncpus", 1L)}, i.e., when unset isequivalent to a setting of 1.}\item{\code{pkgType}:}{The default type of packages to be downloadedand installed -- see \code{\link{install.packages}}.Possible values are platform dependently\describe{\item{on Windows}{\code{"win.binary"}, \code{"source"} and\code{"both"} (the default).}\item{on Unix-alikes}{\code{"source"} (the default except under aCRAN macOS build), build-specific variants of\code{"mac.binary"} (e.g., \code{"mac.binary.big-sur-arm64"}) or\code{"both"} (the default for CRAN macOS builds).}}Value \code{"binary"} is a synonym for the native binary type (ifthere is one); \code{"both"} is used by\code{\link{install.packages}} to choose between source and binaryinstalls.}\item{\code{repos}:}{character vector of repository URLs for use by\code{\link{available.packages}} and related functions. Initiallyset from entries marked as default in the\file{\link[=R_REPOSITORIES]{repositories}} file,whose path is configurable via environment variable \env{R_REPOSITORIES}(set this to \code{NULL} to skip initialization at startup).The \sQuote{factory-fresh} setting from the file in \code{R.home("etc")} is\code{c(CRAN="@CRAN@")}, a value that causes some utilities toprompt for a CRAN mirror. To avoid this do set the CRAN mirror,by something like \preformatted{local({r <- getOption("repos")r["CRAN"] <- "https://my.local.cran"options(repos = r)})}in your \file{\link{.Rprofile}},or use a personal \file{repositories} file.Note that you can add more repositories (Bioconductor,\I{R-Forge}, \I{RForge.net}, \dots) for the current sessionusing \code{\link{setRepositories}}.}\item{\code{str}:}{a list of options controlling the default\code{\link{str}} display. Defaults to \code{\link{strOptions}()}.}\item{\code{SweaveHooks}, \code{SweaveSyntax}:}{see \code{\link{Sweave}}.}\item{\code{unzip}:}{a character string used by \code{\link{unzip}}:the path of the external program \command{unzip} or \code{"internal"}.Defaults (platform dependently)\describe{\item{on unix-alikes}{to the value of \env{R_UNZIPCMD}, which is set in\file{etc/Renviron} to the path of the \code{unzip} command foundduring configuration and otherwise to \code{""}.}\item{on Windows}{to \code{"internal"} when the internal unzipcode is used.}}}}}\section{Options set in package \pkg{parallel}}{These will be set when package \pkg{parallel} (or its namespace)is loaded if not already set.\describe{\item{\code{mc.cores}:}{an integer giving the maximum allowed numberof \emph{additional} \R processes allowed to be run in parallel tothe current \R process. Defaults to the setting of theenvironment variable \env{MC_CORES} if set. Most applicationswhich use this assume a limit of \code{2} if it is unset.}}}\section{Options used on Unix only}{\describe{\item{\code{dvipscmd}:}{character string giving a command to be used inthe (deprecated) off-line printing of help pages \emph{via}PostScript. Defaults to \command{"dvips"}.}}}\section{Options used on Windows only}{\describe{\item{\code{warn.FPU}:}{logical, by default undefined. If true,a \link{warning} is produced whenever \link{dyn.load} repairs thecontrol word damaged by a buggy DLL.}}}\references{Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)\emph{The New S Language}.Wadsworth & Brooks/Cole.}\examples{op <- options(); utils::str(op) # op is a named listgetOption("width") == options()$width # the latter needs more memoryoptions(digits = 15)pi# set the editor, and save previous valueold.o <- options(editor = "nedit")old.ooptions(check.bounds = TRUE, warn = 1)x <- NULL; x[4] <- "yes" # gives a warningoptions(digits = 5)print(1e5)options(scipen = 3); print(1e5)options(op) # reset (all) initial optionsoptions("digits")\dontrun{## set contrast handling to be like Soptions(contrasts = c("contr.helmert", "contr.poly"))}\dontrun{## on error, terminate the R session with error status 66options(error = quote(q("no", status = 66, runLast = FALSE)))stop("test it")}\dontrun{## Set error actions for debugging:## enter browser on error, see ?recover:options(error = recover)## allows to call debugger() afterwards, see ?debugger:options(error = dump.frames)## A possible setting for non-interactive sessionsoptions(error = quote({dump.frames(to.file = TRUE); q()}))}# Compare the two ways to get an option and use it# accounting for the possibility it might not be set.if(as.logical(getOption("performCleanup", TRUE)))cat("do cleanup\n")\dontrun{# a clumsier way of expressing the above w/o the default.tmp <- getOption("performCleanup")if(is.null(tmp))tmp <- TRUEif(tmp)cat("do cleanup\n")}}\keyword{environment}\keyword{error}\keyword{print}