Learn R Programming

base (version 3.3)

isS4: Test for an S4 object

Description

Tests whether the object is an instance of an S4 class.

Usage

isS4(object)
asS4(object, flag = TRUE, complete = TRUE) asS3(object, flag = TRUE, complete = TRUE)

Arguments

object
Any R object.
flag
Optional, logical: indicate direction of conversion.
complete
Optional, logical: whether conversion to S3 is completed. Not usually needed, but see the details section.

Value

isS4 always returns TRUE or FALSE according to whether the internal flag marking an S4 object has been turned on for this object.asS4 and asS3 will turn this flag on or off, and asS3 will set the class from the objects .S3Class slot if one exists. Note that asS3 will not turn the object into an S3 object unless there is a valid conversion; that is, an object of type other than "S4" for which the S4 object is an extension, unless argument complete is FALSE.

Details

Note that isS4 does not rely on the methods package, so in particular it can be used to detect the need to require that package.

asS3 uses the value of complete to control whether an attempt is made to transform object into a valid object of the implied S3 class. If complete is TRUE, then an object from an S4 class extending an S3 class will be transformed into an S3 object with the corresponding S3 class (see S3Part). This includes classes extending the pseudo-classes array and matrix: such objects will have their class attribute set to NULL.

isS4 is primitive.

See Also

is.object for a more general test; Methods for general information on S4.

Examples

Run this code

isS4(pi) # FALSE
isS4(getClass("MethodDefinition")) # TRUE

Run the code above in your browser using DataLab