R: Test for an S4 object

isS4 {base} | R Documentation

## 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.

### 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.

### 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`.

### See Also

`is.object` for a more general test; Introduction for general information on S4; Classes_Details for more on S4 class definitions.

### Examples

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

[Package base version 3.5.1 Index]