R: Platform Specific Variables

.Platform {base} | R Documentation

## Platform Specific Variables

### Description

`.Platform` is a list with some details of the platform under which R was built. This provides means to write OS-portable R code.

### Usage

    .Platform

### Value

A list with at least the following components:

`OS.type` | character string, giving the Operating System (family) of the computer. One of `"unix"` or `"windows"`.
`file.sep` | character string, giving the file separator used on your platform: `"/"` on both Unix-alikes and on Windows (but not on the former port to Classic Mac OS).
`dynlib.ext` | character string, giving the file name extension of dynamically loadable libraries, e.g., `".dll"` on Windows and `".so"` or `".sl"` on Unix-alikes. (Note for macOS users: these are shared objects as loaded by `dyn.load` and not dylibs: see `dyn.load`.)
`GUI` | character string, giving the type of GUI in use, or `"unknown"` if no GUI can be assumed. Possible values are for Unix-alikes the values given via the -g command-line flag (`"X11"`, `"Tk"`), `"AQUA"` (running under `R.app` on macOS), `"Rgui"` and `"RTerm"` (Windows) and perhaps others under alternative front-ends or embedded R.
`endian` | character string, `"big"` or `"little"`, giving the ‘endianness’ of the processor in use. This is relevant when it is necessary to know the order to read/write bytes of e.g. an integer or double from/to a connection: see `readBin`.
`pkgType` | character string, the preferred setting for `options("pkgType")`. Values `"source"`, `"mac.binary.el-capitan"` and `"win.binary"` are currently in use. This should not be used to identify the OS.
`path.sep` | character string, giving the path separator, used on your platform, e.g., `":"` on Unix-alikes and `";"` on Windows. Used to separate paths in environment variables such as `PATH` and `TEXINPUTS`.
`r_arch` | character string, possibly `""`. The name of an architecture-specific directory used in this build of R.

### AQUA

`.Platform$GUI` is set to `"AQUA"` under the macOS GUI, `R.app`. This has a number of consequences:

- ‘/usr/local/bin’ is appended to the PATH environment variable.

- the default graphics device is set to `quartz`.

- selects native (rather than Tk) widgets for the `graphics = TRUE` options of `menu` and `select.list`.

- HTML help is displayed in the internal browser.

- the spreadsheet-like data editor/viewer uses a Quartz version rather than the X11 one.

### See Also

`R.version` and `Sys.info` give more details about the OS. In particular, `R.version$platform` is the canonical name of the platform under which R was compiled.

`.Machine` for details of the arithmetic used, and `system` for invoking platform-specific system commands.

`capabilities` and `extSoftVersion` (and links there) for availability of capabilities partly external to R but used from R functions.

### Examples

    ## Note: this can be done in a system-independent way by dir.exists()
    if(.Platform$OS.type == "unix") {
       system.test <- function(...) system(paste("test", ...)) == 0L
       dir.exists2 <- function(dir)
           sapply(dir, function(d) system.test("-d", d))
       dir.exists2(c(R.home(), "/tmp", "~", "/NO")) # > T T T F
    }

[Package base version 3.5.1 Index]