isS4                  package:base                  R Documentation

_T_e_s_t _f_o_r _a_n _S_4 _o_b_j_e_c_t

_D_e_s_c_r_i_p_t_i_o_n:

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

_U_s_a_g_e:

     isS4(object)

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

_A_r_g_u_m_e_n_t_s:

  object: Any R object. 

    flag: A single logical value; not 'NA', whether to turn the S4
          object flag on or off.

complete: How to complete the transformation to/from S4.  Only
          currently used when 'flag' is 'FALSE'.  If '1', the object
          must convert to a valid S3 object, or an error results.  If
          '2', a non-valid S3 object is left alone, silently.  If '0',
          no conversion is made other than setting the internal bit
          (used internally but not recommended, since it can result in
          an invalid object). 

_D_e_t_a_i_l_s:

     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.  (But 'asS4' does depend on 'methods'.)

     Note that the S4 methods for primitive functions do not apply to
     S3 classes and that the methods for basic classes, such as the
     vector types, are sealed. To apply S4 methods reliably to an S3
     object, define an S4 class that extends the S3 class
     ('setOldClass').

     When 'asS4' is called with 'flag == FALSE', the value of
     'complete' controls whether an attempt is made to transform
     'object' into a valid object of the implied S3 class.  If so, 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'.

_V_a_l_u_e:

     'isS4' always returns 'TRUE' or 'FALSE' according to whether the
     internal flag marking an S4 object has been turned on for this
     object.

     'asS4' will turn this flag on or off, according to argument
     'flag', and in the latter case complete the conversion as
     described under argument 'complete'. Note that with 'flag FALSE',
     an S4 object will _not_ but turned 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 '0'.

_S_e_e _A_l_s_o:

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

_E_x_a_m_p_l_e_s:

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

