Coerce an object to a given class.
as(object, Class, strict=TRUE, ext)as(object, Class) <- value
any R object.
the name of the class to which object
should be
coerced.
logical flag. If TRUE
, the returned object
must be strictly from the target class (unless that class is a
virtual class, in which case the object will be from the closest
actual class, in particular the original object, if that class extends the
virtual class directly).
If strict = FALSE
, any simple extension of the target class
will be returned, without further change. A simple extension is,
roughly, one that just adds slots to an existing class.
The value to use to modify object
(see the
discussion below). You should supply an object with class
Class
; some coercion is done, but you're unwise to rely on
it.
an optional object
defining how Class
is extended by the class of the
object (as returned by possibleExtends
).
This argument is used internally;
do not use it directly.
as(object)
returns the version of this object coerced to be the given
Class
. When used in the replacement form on the left of
an assignment, the portion of the object corresponding to
Class
is replaced by value
.
The operation of as()
in either form depends on the
definition of coerce methods. Methods are defined automatically
when the two classes are related by inheritance; that is, when
one of the classes is a subclass of the other.
Coerce methods are also predefined for basic classes (including all the types of vectors, functions and a few others).
Beyond these two sources of methods, further methods are defined
by calls to the setAs
function. See that
documentation also for details of how coerce methods work. Use
showMethods(coerce)
for a list of all currently defined methods, as in the
example below.
Methods are pre-defined for coercing any object to one of the basic
datatypes. For example, as(x, "numeric")
uses the existing
as.numeric
function. These and all other existing methods
can be listed as shown in the example.
Chambers, John M. (2016) Extending R, Chapman & Hall. (Chapters 9 and 10.)
If you think of using try(as(x, cl))
, consider
canCoerce(x, cl)
instead.
# NOT RUN {
## Show all the existing methods for as()
showMethods("coerce")
# }
Run the code above in your browser using DataLab