numeric_version {base} | R Documentation |

## Numeric Versions

### Description

A simple S3 class for representing numeric versions including package versions, and associated methods.

### Usage

```
numeric_version(x, strict = TRUE)
package_version(x, strict = TRUE)
R_system_version(x, strict = TRUE)
getRversion()
as.numeric_version(x)
as.package_version(x)
is.numeric_version(x)
is.package_version(x)
```

### Arguments

`x` |
for the creators, a character vector with suitable numeric
version strings (see ‘Details’);
for |

`strict` |
a logical indicating whether invalid numeric versions should result in an error (default) or not. |

### Details

Numeric versions are sequences of one or more non-negative integers,
usually (e.g., in package ‘DESCRIPTION’ files) represented as
character strings with the elements of the sequence concatenated and
separated by single ‘.’ or ‘-’ characters. **R** package
versions consist of at least two such integers, an **R** system version
of exactly three (major, minor and patch level).

Functions `numeric_version`

, `package_version`

and
`R_system_version`

create a representation from such strings (if
suitable) which allows for coercion and testing, combination,
comparison, summaries (min/max), inclusion in data frames,
subscripting, and printing. The classes can hold a vector of such
representations.

`getRversion`

returns the version of the running **R** as an R
system version object.

The `[[`

operator extracts or replaces a single version. To
access the integers of a version use two indices: see the examples.

### See Also

`compareVersion`

;
`packageVersion`

for the version of a specific **R** package.
`R.version`

etc for the version of **R** (and the information
underlying `getRversion()`

).

### Examples

```
x <- package_version(c("1.2-4", "1.2-3", "2.1"))
x < "1.4-2.3"
c(min(x), max(x))
x[2, 2]
x$major
x$minor
if(getRversion() <= "2.5.0") { ## work around missing feature
cat("Your version of R, ", as.character(getRversion()),
", is outdated.\n",
"Now trying to work around that ...\n", sep = "")
}
x[[1]]
x[[c(1, 3)]] # '4' as a numeric version
x[1, 3] # same
x[[1, 3]] # 4 as an integer
x[[2, 3]] <- 0 # zero the patchlevel
x[[c(2, 3)]] <- 0 # same
x
x[[3]] <- "2.2.3"
x
x <- c(x, package_version("0.0"))
is.na(x)[4] <- TRUE
stopifnot(identical(is.na(x), c(rep(FALSE,3), TRUE)),
anyNA(x))
```

*base*version 4.4.1 Index]