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.