cas | R Documentation |
Functions for handling chemical abstract service (CAS) registry numbers
cas(length = 0L)
is.cas(x)
as.cas(x)
## S3 method for class 'cas'
x[[i]]
## S3 method for class 'cas'
x[i]
## S3 replacement method for class 'cas'
x[[i]] <- value
## S3 replacement method for class 'cas'
x[i] <- value
## S3 method for class 'cas'
format(x, hyphenate = TRUE, ...)
## S3 method for class 'cas'
as.character(x, ...)
show.cas(x, ...)
## S3 method for class 'cas'
print(x, ...)
## S3 method for class 'cas'
as.list(x, ...)
## S3 method for class 'cas'
as.double(x, ...)
## S3 method for class 'cas'
as.integer(x, ...)
## S3 method for class 'cas'
c(...)
## S3 method for class 'cas'
as.data.frame(...)
length |
A non-negative |
x |
Object from which data needs to be extracted or replaced, or needs to be coerced into a specific
format. For nearly all of the functions documented here, this needs to be an object of the S3 class 'cas',
which can be created with |
i |
Index specifying element(s) to extract or replace. See also |
value |
A replacement value, can be anything that can be converted into an S3 cas-class object with |
hyphenate |
A |
... |
Arguments passed to other functions |
In the database CAS registry numbers are stored
as text (type character
). As CAS numbers can consist of a maximum of 10 digits (plus two hyphens) this means
that each CAS number can consume up to 12 bytes of memory or disk space. By storing the data numerically, only
5 bytes are required. These functions provide the means to handle CAS registry numbers and coerce from and to
different formats and types.
Functions cas
, c
and as.cas
return S3 class 'cas' objects. Coercion functions
(starting with 'as') return the object as specified by their respective function names (i.e., integer
,
double
, character
, list
and data.frame
). The show.cas
and print
functions
also return formatted charater
s. The function is.cas
will return a single logical
value,
indicating whether x
is a valid S3 cas-class object. The square brackets return the selected index/indices,
or the vector
of cas objects where the selected elements are replaced by value
.
Pepijn de Vries
## This will generate a vector of cas objects containing 10
## fictive (0-00-0), but valid registry numbers:
cas(10)
## This is a cas-object:
is.cas(cas(0L))
## This is not a cas-object:
is.cas(0L)
## Three different ways of creating a cas object from
## Benzene's CAS registry number (the result is the same)
as.cas("71-43-2")
as.cas("71432")
as.cas(71432L)
## This is one way of creating a vector with multiple CAS registry numbers:
cas_data <- as.cas(c("64175", "71432", "58082"))
## This is how you select a specific element(s) from the vector:
cas_data[2:3]
cas_data[[2]]
## You can also replace specific elements in the vector:
cas_data[1] <- "7440-23-5"
cas_data[[2]] <- "129-00-0"
## You can format CAS numbers with or without hyphens:
format(cas_data, TRUE)
format(cas_data, FALSE)
## The same can be achieved using as.character
as.character(cas_data, TRUE)
as.character(cas_data, FALSE)
## There are also show and print methods available:
show(cas_data)
print(cas_data)
## Numeric values can be obtained from CAS using as.numeric, as.double or as.integer
as.numeric(cas_data)
## Be careful, however. Some CAS numbers cannot be represented by R's 32 bit integers
## and will produce NA's. This will work OK:
huge_cas <- as.cas("9999999-99-5")
## Not run:
## This will not:
as.integer(huge_cas)
## End(Not run)
## The trick applied by this package is that the final
## validation digit is stored separately as attribute:
unclass(huge_cas)
## This is how cas objects can be concatenated:
cas_data <- c(huge_cas, cas_data)
## This will create a data.frame
as.data.frame(cas_data)
## This will create a list:
as.list(cas_data)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.