Allow the user to set and examine a variety of global options which affect the way in which R computes and displays its results.
options(…)getOption(x, default = NULL)
.Options
any options can be defined, using name = value.
    However, only the ones below are used in base R.
Options can also be passed by giving a single unnamed argument which is a named list.
a character string holding an option name.
if the specified option is not set in the options list, this value is returned. This facilitates retrieving an option and checking whether it is set and setting it separately if not.
For getOption, the current value set for option x, or
  default (which defaults to NULL) if the option is unset.
For options(), a list of all set options sorted by name.  For
  options(name), a list of length one containing the set value,
  or NULL if it is unset.  For uses setting one or more options,
  a list with the previous values of the options changed (returned
  invisibly).
add.smooth:typically logical, defaulting to
      TRUE.  Could also be set to an integer for specifying how
      many (simulated) smooths should be added.  This is currently only
      used by plot.lm.
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 askYesNo to use
      as default responses for such questions.
browserNLdisabled:logical: whether newline is
      disabled as a synonym for "n" in the browser.
checkPackageLicense:logical, not set by default.  If
      true, loadNamespace asks a user to accept any
      non-standard license at first load of the package.
check.bounds:logical, defaulting to FALSE.  If
      true, a warning is produced whenever a
      vector (atomic or list) is extended, by something
      like x <- 1:3; x[5] <- 6.
CBoundsCheck:logical, controlling whether
      .C and .Fortran make copies to check for
      array over-runs on the atomic vector arguments.
Initially set from value of the environment variable
      R_C_BOUNDS_CHECK (set to yes to enable).
conflicts.policy:character string or list controlling
      handling of conflicts found in calls to library or
      require. See library for details.
continue:a non-empty string setting the prompt used for lines which continue over one line.
%% default is set in ../../profile/Common.R :
defaultPackages:the packages that are attached by
      default when R starts up.  Initially set from value of the
      environment variable R_DEFAULT_PACKAGES, or if that is unset
      to c("datasets", "utils", "grDevices", "graphics", "stats",
        "methods").  (Set R_DEFAULT_PACKAGES to NULL or
      a comma-separated list of package names.)  It will not work to set
      this in a .Rprofile file, as its value is consulted before
      that file is read.
deparse.cutoff:integer value controlling the
      printing of language constructs which are deparsed.
      Default 60.
deparse.max.lines:controls the number of lines used
      when deparsing in traceback, browser,
      and upon entry to a function whose debugging flag is set.
      Initially unset, and only used if set to a positive integer.
digits:controls the number of significant (see signif) digits to
      print when printing numeric values.  It is a suggestion only.
      Valid values are 1…22 with default 7.  See the note in
      print.default about values greater than 15.
digits.secs:controls the maximum number of digits to
      print when formatting time values in seconds.  Valid values
      are 0…6 with default 0.  See strftime.
download.file.extra:Extra command-line argument(s) for
      non-default methods: see download.file.
download.file.method:Method to be used for
      download.file.  Currently download methods
      "internal", "wininet" (Windows only),
      "libcurl", "wget" and "curl" are available.
      If not set, method = "auto"
      is chosen: see download.file.
echo:logical.  Only used in non-interactive mode,
      when it controls whether input is echoed.  Command-line option
      --slave sets this to FALSE, but otherwise
      it starts the session as TRUE.
encoding:The name of an encoding, default
      "native.enc".  See connections.
error:either a function or an expression governing
      the handling of non-catastrophic errors such as those generated by
      stop as well as by signals and internally detected
      errors.  If the option is a function, a call to that function,
      with no arguments, is generated as the expression.  By default
      the option is not set: see stop for the behaviour in
      that case.  The functions dump.frames and
      recover provide alternatives that allow post-mortem
      debugging.  Note that these need to specified as
      e.g.options(error = utils::recover) in startup
      files such as .Rprofile.
expressions:sets a limit on the number of nested
      expressions that will be evaluated.  Valid values are
      25…500000 with default 5000.  If you increase it, you may
      also want to start R with a larger protection stack;
      see --max-ppsize in Memory.  Note too that
      you may cause a segfault from overflow of the C stack, and on OSes
      where it is possible you may want to increase that.  Once the
      limit is reached an error is thrown.  The current number under
      evaluation can be found by calling Cstack_info.
interrupt:a function taking no arguments to be called on a user interrupt if the interrupt condition is not otherwise handled.
keep.parse.data:When internally storing source code
      (keep.source is TRUE), also store parse data.  Parse data can
      then be retrieved with getParseData() and used e.g.  for
      spell checking of string constants or syntax highlighting.  The value
      has effect only when internally storing source code (see
      keep.source).  The default is TRUE.
keep.parse.data.pkgs:As for keep.parse.data, used
      only when packages are installed.  Defaults to FALSE unless the
      environment variable R_KEEP_PKG_PARSE_DATA is set to yes.
      The space overhead of parse data can be substantial even after
      compression and it causes performance overhead when loading packages.
keep.source:When TRUE, the source code for
      functions (newly defined or loaded) is stored internally
      allowing comments to be kept in the right places.  Retrieve the
      source by printing or using deparse(fn, control =
      "useSource").
The default is interactive(), i.e., TRUE for
      interactive use.
%% used by tools::makeLazyLoading
keep.source.pkgs:As for keep.source, used only
      when packages are installed.  Defaults to FALSE unless the
      environment variable R_KEEP_PKG_SOURCE is set to yes.
matprod:a string selecting the implementation of
      the matrix products %*%, crossprod, and
      tcrossprod for double and complex vectors:
      
"internal"uses an unoptimized 3-loop algorithm
	  which correctly propagates NaN and
	  Inf values and is consistent in precision with
	  other summation algorithms inside R like sum or
	  colSums (which now means that it uses a long
	    double accumulator for summation if available and enabled,
	  see capabilities).
"default"uses BLAS to speed up computation, but
	  to ensure correct propagation of NaN and Inf
	  values it uses an unoptimized 3-loop algorithm for inputs that may
	  contain NaN or Inf values.  When deemed
	  beneficial for performance, "default" may call the
	  3-loop algorithm unconditionally, i.e., without checking the
	  input for NaN/Inf values.  The 3-loop algorithm uses (only) a
	  double accumulator for summation, which is consistent
	  with the reference BLAS implementation.
"blas"uses BLAS unconditionally without any
	  checks and should be used with extreme caution.  BLAS
	  libraries do not propagate NaN or
	  Inf values correctly and for inputs with
	  NaN/Inf values the results may be undefined.
"default.simd"is experimental and will likely be
	  removed in future versions of R.  It provides the same behavior
	  as "default", but the check whether the input contains
	  NaN/Inf values is faster on some SIMD hardware.  On older
	  systems it will run correctly, but may be much slower than
	  "default".
max.print:integer, defaulting to 99999.
      print or show methods can make use of
      this option, to limit the amount of information that is printed,
      to something in the order of (and typically slightly less than)
      max.print entries.
OutDec:character string containing a single
      character.  The preferred character to be used as the decimal
      point in output conversions, that is in printing, plotting,
      format and as.character but not when
      deparsing nor by sprintf nor formatC
      (which are sometimes used prior to printing.)
pager:the command used for displaying text files by
      file.show, details depending on the platform:
      
defaults to R_HOME/bin/pager, which is a shell
	  script running the command-line specified by the environment
	  variable PAGER whose default is set at configuration,
	  usually to less.
defaults to "internal", which uses a pager similar to the
	  GUI console.  Another possibility is "console" to use the
	  console itself.
(files, header,
	title, delete.file) corresponding to the first four arguments of
      file.show.papersize:the default paper format used by
      postscript;  set by environment variable
      R_PAPERSIZE when R is started: if that is unset or invalid
      it defaults platform dependently
      
to a value derived from the locale category
	  LC_PAPER, or if that is unavailable to a default set
	  when R was built.
to "a4", or "letter" in US and
	  Canadian locales.
PCRE_limit_recursion:Logical: should
      grep(perl = TRUE) and similar limit the maximal
      recursion allowed when matching?  PCRE can be built not to use a
      recursion stack (see pcre_config, but it is by
      default with a recursion limit of 10000000 which potentially needs
      a very large C stack: see the discussion at
      http://www.pcre.org/original/doc/html/pcrestack.html.  If
      true, the limit is reduced using R's estimate of the C stack size
      available (if known), otherwise 10000.  If NA, the limit is
      imposed only if any input string has 1000 or more bytes.
PCRE_study:Logical or integer: should
      grep(perl = TRUE) and similar ‘study’ the
      patterns?  Either logical or a numerical threshold for the minimum
      number of strings to be matched for the pattern to be studied (the
      default is 10)).  Missing values and negative numbers are
      treated as false.
PCRE_use_JIT:Logical: should grep(perl =
	TRUE), strsplit(perl = TRUE) and similar make use
      of PCRE's Just-In-Time compiler for studied patterns, if
      available?  Missing values are treated as false.
pdfviewer:default PDF viewer.
      The default is set from the environment variable R_PDFVIEWER,
      the default value of which
      
is set when R is configured, and
is the full path to open.exe, a utility
	  supplied with R.
printcmd:the command used by postscript
      for printing; set by environment variable R_PRINTCMD when
      R is started.  This should be a command that expects either input
      to be piped to stdin or to be given a single filename
      argument.  Usually set to "lpr" on a Unix-alike.
prompt:a non-empty string to be used for R's prompt;
      should usually end in a blank (" ").
% verbatim, for checking " \t\n\"\\'`><=%;,|&{()}"
rl_word_breaks:(Unix only:) Used for the readline-based terminal
      interface.  Default value " \t\n\"\\'`><=%;,|&{()}".
This is the set of characters use to break the input line into
      tokens for object- and file-name completion.  Those who do not use
      spaces around operators may prefer
      " \t\n\"\\'`><=+-*%;,|&{()}"
save.defaults, save.image.defaults:see save.
scipen:integer.  A penalty to be applied
      when deciding to print numeric values in fixed or exponential
      notation.  Positive values bias towards fixed and negative towards
      scientific notation: fixed notation will be preferred unless it is
      more than scipen digits wider.
setWidthOnResize:a logical. If set and TRUE, R
      run in a terminal using a recent readline library will set
      the width option when the terminal is resized.
showWarnCalls, showErrorCalls:a logical. Should warning and error messages show a summary of the call stack? By default error calls are shown in non-interactive sessions.
showNCalls:integer. Controls how long the sequence of calls must be (in bytes) before ellipses are used. Defaults to 40 and should be at least 30 and no more than 500.
show.error.locations:Should source locations of
      errors be printed?  If set to TRUE or "top", the
      source location that is highest on the stack (the most recent
      call) will be printed.  "bottom" will print the location
      of the earliest call found on the stack.
Integer values can select other entries.  The value 0
      corresponds to "top" and positive values count down the
      stack from there.  The value -1 corresponds to
      "bottom" and negative values count up from there.
show.error.messages:a logical.  Should error messages
      be printed?  Intended for use with try or a
      user-installed error handler.
stringsAsFactors:The default setting for arguments of
      data.frame and read.table.
texi2dvi:used by functions
      texi2dvi and texi2pdf in package tools.
      
Set at startup from the environment variable R_TEXI2DVICMD,
      which defaults first to the value of environment variable
      TEXI2DVI, and then to a value set when R was installed (the
      full path to a texi2dvi script if one was found).  If
      necessary, that environment variable can be set to
      "emulation".
timeout:integer.  The timeout for some Internet
      operations, in seconds.  Default 60 seconds.  See
      download.file and connections.
topLevelEnvironment:see topenv and
      sys.source.
url.method:character string: the default method for
      url.  Normally unset, which is equivalent to
      "default", which is "internal" except on Windows.
useFancyQuotes:controls the use of
      directional quotes in sQuote, dQuote and in
      rendering text help (see Rd2txt in package
      tools).  Can be TRUE, FALSE, "TeX" or
      "UTF-8".
verbose:logical.  Should R report extra information
      on progress?  Set to TRUE by the command-line option
      --verbose.
warn:sets the handling of warning messages.  If
      warn is negative all warnings are ignored.  If warn
      is zero (the default) warnings are stored until the top--level
      function returns.  If 10 or fewer warnings were signalled they
      will be printed otherwise a message saying how many were
      signalled.  An object called last.warning is
      created and can be printed through the function
      warnings.  If warn is one, warnings are
      printed as they occur.  If warn is two (or larger, coercible
      to integer), all warnings are turned into errors.
warnPartialMatchArgs:logical. If true, warns if partial matching is used in argument matching.
warnPartialMatchAttr:logical.  If true, warns if
      partial matching is used in extracting attributes via
      attr.
warnPartialMatchDollar:logical.  If true, warns if
      partial matching is used for extraction by $.
warning.expression:an R code expression to be called
      if a warning is generated, replacing the standard message.  If
      non-null it is called irrespective of the value of option
      warn.
warning.length:sets the truncation limit for error and warning messages. A non-negative integer, with allowed values 100…8170, default 1000.
nwarnings:the limit for the number of warnings kept
      when warn = 0, default 50.  This will discard messages if
      called whilst they are being collected.  If you increase this
      limit, be aware that the current implementation pre-allocates
      the equivalent of a named list for them, i.e., do not increase it to
      more than say a million.
width:controls the maximum number of columns on a
      line used in printing vectors, matrices and arrays, and when
      filling by cat.
Columns are normally the same as characters except in East Asian languages.
You may want to change this if you re-size the window that R is
      running in.  Valid values are 10…10000 with default normally
      80.  (The limits on valid values are in file Print.h and can be
      changed by re-compiling R.)  Some R consoles automatically change
      the value when they are resized.
See the examples on Startup for one way to set this automatically from the terminal width when R is started.
The ‘factory-fresh’ default settings of some of these options are
| add.smooth | TRUE | 
| check.bounds | FALSE | 
| continue | "+ " | 
| digits | 7 | 
| echo | TRUE | 
| encoding | "native.enc" | 
| error | NULL | 
| expressions | 5000 | 
| keep.source | interactive() | 
| keep.source.pkgs | FALSE | 
| max.print | 99999 | 
| OutDec | "." | 
| prompt | "> " | 
| scipen | 0 | 
| show.error.messages | TRUE | 
| timeout | 60 | 
| verbose | FALSE | 
| warn | 0 | 
| warning.length | 1000 | 
| width | 80 | 
Others are set from environment variables or are platform-dependent.
These will be set when package grDevices (or its namespace) is loaded if not already set.
bitmapType:(Unix only, incl. macOS) character.  The
      default type for the
      bitmap devices such as png.  Defaults to
      "cairo" on systems where that is available, or to
      "quartz" on macOS where that is available.
device:a character string giving
      the name of a function, or the function object itself,
      which when called creates a new graphics device of the default
      type for that session.  The value of this option defaults to the
      normal screen device (e.g., X11, windows or
      quartz) for an interactive session, and pdf
      in batch use or if a screen is not available.  If set to the name
      of a device, the device is looked for first from the global
      environment (that is down the usual search path) and then in the
      grDevices namespace.
The default values in interactive and non-interactive sessions are
      configurable via environment variables
      R_INTERACTIVE_DEVICE and R_DEFAULT_DEVICE
      respectively.
The search logic for ‘the normal screen device’ is that
      this is windows on Windows, and quartz if available
      on macOS (running at the console, and compiled into the build).
      Otherwise X11 is used if environment variable DISPLAY
      is set.
device.ask.default:logical.  The default for
      devAskNewPage("ask") when a device is opened.
locatorBell:logical.  Should selection in locator
      and identify be confirmed by a bell?  Default TRUE.
      Honoured at least on X11 and windows devices.
windowsTimeout:(Windows-only) integer vector of length 2
      representing two times in milliseconds.  These control the
      double-buffering of windows devices when that is
      enabled: the first is the delay after plotting finishes
      (default 100) and the second is the update interval during
      continuous plotting (default 500).  The values at the time the
      device is opened are used.
max.contour.segments:positive integer, defaulting to
      25000 if not set.  A limit on the number of
      segments in a single contour line in contour or
      contourLines.
These will be set when package stats (or its namespace) is loaded if not already set.
contrasts:the default contrasts used in
      model fitting such as with aov or lm.
      A character vector of length two, the first giving the function to
      be used with unordered factors and the second the function to be
      used with ordered factors.  By default the elements are named
      c("unordered", "ordered"), but the names are unused.
na.action:the name of a function for treating missing
      values (NA's) for certain situations, see
      na.action and na.pass.
show.coef.Pvalues:logical, affecting whether P
      values are printed in summary tables of coefficients.  See
      printCoefmat.
show.nls.convergence:logical, should nls
      convergence messages be printed for successful fits?
show.signif.stars:logical, should stars be printed on
      summary tables of coefficients?  See printCoefmat.
ts.eps:the relative tolerance for certain time series
      (ts) computations.  Default 1e-05.
ts.S.compat:logical.  Used to select S compatibility
      for plotting time-series spectra.  See the description of argument
      log in plot.spec.
These will be set (apart from Ncpus) when package utils
  (or its namespace) is loaded if not already set.
BioC_mirror:The URL of a Bioconductor mirror
      for use by setRepositories,
      e.g.the default "https://bioconductor.org"
      or the European mirror
      "https://bioconductor.statistik.tu-dortmund.de".  Can be set
      by chooseBioCmirror.
browser:The HTML browser to be used by
      browseURL.  This sets the default browser on UNIX or
      a non-default browser on Windows.  Alternatively, an R function
      that is called with a URL as its argument.  See
      browseURL for further details.
ccaddress:default Cc: address used by
      create.post (and hencebug.report and
      help.request).  Can be FALSE or "".
citation.bibtex.max:default 1; the maximal number of
      bibentries (bibentry) in a citation for
      which the bibtex version is printed in addition to the text one.
de.cellwidth:integer: the cell widths (number of
      characters) to be used in the data editor dataentry.
      If this is unset (the default), 0, negative or NA, variable
      cell widths are used.
demo.ask:default for the ask argument of
      demo.
editor:a non-empty character string or an R function
      that sets the default text editor, e.g., for edit
      and file.edit.  Set from the environment variable
      EDITOR on UNIX, or if unset VISUAL or vi.
      As a string it should specify the name of or path to an external
      command.
example.ask:default for the ask argument of
      example.
help.ports:optional integer vector for setting ports
      of the internal HTTP server, see startDynamicHelp.
help.search.types:default types of documentation
      to be searched by help.search and ??.
help.try.all.packages:default for an argument of
      help.
help_type:default for an argument of
    help, used also as the help type by ?.
HTTPUserAgent:string used as the ‘user agent’ in
      HTTP(S) requests by download.file, url
      and curlGetHeaders, or NULL when requests will
      be made without a user agent header.  The default is
      R (<version> <platform> <arch> <os>)
      except when libcurl is used when it is
      libcurl/7.<xx>.<y> for the libcurl version in use.
install.lock:logical: should per-directory package
      locking be used by install.packages?  Most useful
      for binary installs on macOS and Windows, but can be used in a
      startup file for source installs via
      R CMD INSTALL.  For binary installs, can also be
      the character string "pkglock".
internet.info:The minimum level of information to be
      printed on URL downloads etc, using the "internal" and
      "libcurl" methods.
      Default is 2, for failure causes.  Set to 1 or 0 to get more
      detailed information (for the "internal" method 0 provides
      more information than 1).
install.packages.check.source:Used by
      install.packages (and indirectly
      update.packages) on platforms which support binary
      packages.  Possible values "yes" and "no", with
      unset being equivalent to "yes".
install.packages.compile.from.source:Used by
      install.packages(type = "both") (and indirectly
      update.packages) on platforms which
      support binary packages.  Possible values are "never",
      "interactive" (which means ask in interactive use and
      "never" in batch use) and "always".  The default is
      taken from environment variable
      R_COMPILE_AND_INSTALL_PACKAGES, with default
      "interactive" if unset.  However, install.packages
      uses "never" unless a make program is found,
      consulting the environment variable MAKE.
mailer:default emailing method used by
      create.post and hence bug.report and
      help.request.
menu.graphics:Logical: should graphical menus be used
      if available?.  Defaults to TRUE.  Currently applies to
      select.list, chooseCRANmirror,
      setRepositories and to select from multiple (text)
      help files in help.
Ncpus:an integer \(n \ge 1\), used in
      install.packages as default for the number of cpus
      to use in a potentially parallel installation, as
      Ncpus = getOption("Ncpus", 1L), i.e., when unset is
      equivalent to a setting of 1.
pkgType:The default type of packages to be downloaded
      and installed -- see install.packages.
      Possible values are platform dependently
      
"win.binary", "source" and
	  "both" (the default).
"source" (the default except under a
	  CRAN macOS build), "mac.binary.el-capitan" and
	  "both" (the default for CRAN macOS builds).
	  ("mac.binary.mavericks", "mac.binary.leopard",
	  "mac.binary.universal" are no longer in use.)
"binary" is a synonym for the native binary type (if
      there is one); "both" is used by
      install.packages to choose between source and binary
      installs.repos:URLs of the repositories for use by
      update.packages.  Defaults to
      c(CRAN="@CRAN@"), a value that causes some utilities to
      prompt for a CRAN mirror.  To avoid this do set the CRAN mirror,
      by something like
      local({r <- getOption("repos"); r["CRAN"] <- "http://my.local.cran";
                   options(repos = r)}).
Note that you can add more repositories (Bioconductor,
      R-Forge, Rforge.net …)
      using setRepositories.
SweaveHooks, SweaveSyntax:see Sweave.
unzip:a character string used by unzip:
      the path of the external program unzip or "internal".
      Defaults (platform dependently)
      
to the value of R_UNZIPCMD, which is set in
	  etc/Renviron to the path of the unzip command found
	  during configuration and otherwise to "".
to "internal" when the internal unzip
	  code is used.
These will be set when package parallel (or its namespace) is loaded if not already set.
mc.cores:a integer giving the maximum allowed number
      of additional R processes allowed to be run in parallel to
      the current R process.  Defaults to the setting of the
      environment variable MC_CORES if set.  Most applications
      which use this assume a limit of 2 if it is unset.
dvipscmd:character string giving a command to be used in
    the (deprecated) off-line printing of help pages via
    PostScript.  Defaults to "dvips".
Invoking options() with no arguments returns a list with the
  current values of the options.  Note that not all options listed below
  are set initially.  To access the value of a single option, one should
  use, e.g., getOption("width") rather than
  options("width") which is a list of length one.
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
# NOT RUN {
op <- options(); utils::str(op) # op is a named list
getOption("width") == options()$width # the latter needs more memory
options(digits = 15)
pi
# set the editor, and save previous value
old.o <- options(editor = "nedit")
old.o
options(check.bounds = TRUE, warn = 1)
x <- NULL; x[4] <- "yes" # gives a warning
options(digits = 5)
print(1e5)
options(scipen = 3); print(1e5)
options(op)     # reset (all) initial options
options("digits")
# }
# NOT RUN {
## set contrast handling to be like S
options(contrasts = c("contr.helmert", "contr.poly"))
# }
# NOT RUN {
# }
# NOT RUN {
## on error, terminate the R session with error status 66
options(error = quote(q("no", status = 66, runLast = FALSE)))
stop("test it")
# }
# NOT RUN {
# }
# NOT RUN {
## 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 sessions
options(error = quote({dump.frames(to.file = TRUE); q()}))
# }
# NOT RUN {
  # Compare the two ways to get an option and use it
  # acconting for the possibility it might not be set.
if(as.logical(getOption("performCleanp", TRUE)))
   cat("do cleanup\n")
# }
# NOT RUN {
  # a clumsier way of expressing the above w/o the default.
tmp <- getOption("performCleanup")
if(is.null(tmp))
  tmp <- TRUE
if(tmp)
   cat("do cleanup\n")
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab