numeric_version
Numeric Versions

Description

Creates and manipulate version objects, multipart version identifiers of the form 2.17-2.

Usage

numeric_version(x, strict = TRUE)
as.numeric_version(x)
is.numeric_version(x)
package_version(x, strict = TRUE)
is.package_version(x)
as.package_version(x)
R_system_version(x, strict = TRUE)
getRversion()
[.numeric_version(x, i, j)
[[.numeric_version(x, ..., exact = NA)
[[<-.numeric_version(x, ..., value)
Ops.numeric_version(e1, e2)
Summary.numeric_version(..., na.rm)
as.character.numeric_version(x, ...)
as.data.frame.numeric_version(x, row.names = NULL, 
    optional = FALSE, ..., nm = paste(deparse(substitute(x), 
    width.cutoff = 500L), collapse = " "))
c.numeric_version(..., recursive = FALSE)
duplicated.numeric_version(x, incomparables = FALSE, ...)
print.numeric_version(x, ..., quote)
rep.numeric_version(x, ...)
unique.numeric_version(x, incomparables = FALSE, ...)
xtfrm.numeric_version(x)
$.package_version(x, name)
.encode_numeric_version(x, base = NULL)
.decode_numeric_version(x, base = NULL)
.make_numeric_version(x, strict = TRUE, regexp, classes = NULL)

Arguments

x a character vector represented as numeric version or package version, or an object of class numeric_version or package_version, or numeric vector for .decode_numeric_version.
strict a logical value. If TRUE, any invalid version specification causes an error stop.
i, j, exact, value, name the arguments used in subscripts of an object of numeric_version class. See Subscript for the detailed description.
e1, e2 at least one of e1 and e2 must be objects inherited from "numeric_version". The other can be objects inherited from the "numeric_version" class or a character vector that can be coerced to the "numeric_version" class.
na.rm a logical value. If TRUE, NAs should be removed from Summary methods.
row.names, optional, nm, width.cutoff, collapse the arguments used in the method of generic as.data.frame for class "numeric_version". See as.data.frame for the detailed description. width.cutoff and collapse currently are not used.
recursive a logical value. If TRUE, combining is done recursively. The default is FALSE.
incomparables the arguments used in methods of generic duplicated and unique for class "numeric_version". See duplicated and unique for the detailed description.
base the base value used to encode or decode a numeric version. If it is NULL, by default base is defined as the value of the maximum of unlist of x, plus 1 (that is max(unlist(x)) +1).
regexp a pattern matching a regular expression in character strings. It is used to check if x is followed the valid version specification.
classes additional class names attached to the created "numeric_version" object.
quote this argument is ignored.
... other optional arguments passed to or from functions/methods.

Details

An object of "numeric_version" is a list of integer vectors. Each integer vector contains a sequence of integers represented as a numeric version. The valid numeric version string could contain several digits separated by a "." or a "-" character. The class "package_version" inherits from class "numeric_version". It is used to represent the version of a package. The valid package version string must contain at least two digits separated by one "." or "-" character. This is different from a valid numeric version string, which can contain only one digit (therefore a "." or a "-" character is not necessary).
The class "R_system_version" inherits from class "package_version". It is used to represent the system version. The valid system version string must contain exactly three digits separated by two "." characters. R_system_version() creates an object of class "R_system_version" by using the utility function .make_numeric_version().
getRversion() returns the R system version in the object of the class "R_system_version".
You can apply the subscript operators [, [[ and [[<- to the class "numeric_version", and you can apply $ to the class "package_version" to extract or replace part of the object. See Subscript for the detailed description.
The methods of group generic functions Ops and Summary are implemented for the class "numeric_version". All operations are based on the "encoded" numeric version (by using the utility function .encode_numeric_version). The supported Ops operators are:
The supported Summary functions are:
Other associated methods of generic functions implemented for the class "numeric_version" include as.character, as.data.frame, c, duplicated, print, rep, unique and xtfrm. "xtfrm.numeric_version" returns a numeric vector of the same length as x, as well as attributes "base", "lens" and ".classes". The "base" value is 1 plus the maximum of the un-list of x (that is, max(unlist(x)) +1).
"lens" is a length vector of each component of x. ".classes" contains the class names of x. The [i]th element in returned numeric vector is computed as: where k is the length of the [i]th component of x.
.encode_numeric_version, .decode_numeric_version and .make_numeric_version are utilities to handle the numeric_version objects. .encode_numeric_version and .decode_numeric_version are used to encode and decode the numeric version objects with a specified base value. .make_numeric_version creates a numeric version object by using those valid version strings in x.
Value
numeric_version()returns an object of class numeric_version.
as.numeric_version()returns an object of class numeric_version.
.make_numeric_version()returns an object of class numeric_version.
is.numeric_version()returns logical TRUE or FALSE.
is.package_version()returns logical TRUE or FALSE.
Ops.numeric_version()returns logical TRUE or FALSE.
package_version()returns an object of class package_version.
as.package_version()returns an object of class package_version.
R_system_version()returns an object of class R_system_version.
getRversion()returns an object of class R_system_version.
extraction operators [, [[, and $return the designated elements or properties of the object.
replacement operator [[<-returns the x but with replaced value in the designated elements or properties.
Summary.numeric_version()returns the one or two elements of object x.
as.character.numeric_version()returns a character vector.
as.data.frame.numeric_version()returns a data frame.
c.numeric_version()returns an new object of class numeric_version, which list is the combination of all values from all arguments to the function.
duplicated.numeric_version()returns a logical vector to indicate which elements are duplicates.
print.numeric_version()returns nothing but prints out the single quoted character format of each element.
rep.numeric_version()returns an object like x with replicated values.
unique.numeric_version()returns an object like x but with no duplicate values.
xtfrm.numeric_versionreturns a numeric vector of the same length.
.encode_numeric_version()returns a numeric vector of the same length as x, as well as attributes "base", "lens" and ".classes".
  • The "base" value is the input argument base.
  • The "lens" is a length vector of each component of x.
  • The ".classes" contains the class names of x. The [i]th element in the returned numeric vector is computed as follows:
      r[i] = sum(x[[i]][1] + x[[i]][2]/base + x[[i]][3]/base^2 +....+ x[[i]][k]/base^(k-1))
    where k is the length of the [i]th component of x.
.decode_numeric_version()returns the decoded numeric version object. (The decoded algorithm could be the reverse of the operation described for .encode_numeric_version.)
Differences between Spotfire Enterprise Runtime for R and Open-source R
The Spotfire Enterprise Runtime for R functions S_system_version() and getSversion() are non-existent in open-source R, but they are similar to open-source R functions R_system_version() and getRversion().
See Also
Subscript, Ops, Summary, as.character, as.data.frame, c, duplicated, print, rep, unique, xtfrm, grepl
Examples
x.num <- numeric_version(c("2", "2.12.1", "2.13-1", "1-5-1-2"))
x.num
x.num > "2.12"
which(x.num == max(x.num))
data.frame(Version=x.num) 
## Not run:  numeric_version(c("1-5-1-2", "1.5$2"))  # "$" is not legal in version 
numeric_version(c("1-5-1-2", "1.5$2"), strict = FALSE) # no error, NA for bad entry
# package_version needs at least 2 parts
package_version(c("2", "1-5-1-2"), strict=FALSE)
# R_system_version needs exactly 3 parts
R_system_version(c("2.12.1", "2.13-1", "1.13.0", "1.5.1.2", "4"), strict = FALSE) 
getRversion()  
Package base version 6.1.1-7
Package Index