is.recursive              package:base              R Documentation

Is an Object Atomic or Recursive?

Description:

     'is.atomic' returns 'TRUE' if 'x' does not have a list structure
     and 'FALSE' otherwise.

     'is.recursive' returns 'TRUE' if 'x' has a recursive (list-like)
     structure and 'FALSE' otherwise.

Usage:

     is.atomic(x)
     is.recursive(x)

Arguments:

       x: object to be tested.

Details:

     These are generic: you can write methods to handle specific
     classes of objects, see InternalMethods.

References:

     Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) _The New S
     Language_. Wadsworth & Brooks/Cole.

See Also:

     'is.list', 'is.language', etc, and the 'demo("is.things")'.

Examples:

     is.a.r <- function(x) c(is.atomic(x), is.recursive(x))

     is.a.r(c(a=1,b=3))      # TRUE FALSE
     is.a.r(list())          # FALSE TRUE ??
     is.a.r(list(2))         # FALSE TRUE
     is.a.r(lm)              # FALSE TRUE
     is.a.r(y ~ x)           # FALSE TRUE
     is.a.r(expression(x+1)) # FALSE TRUE (not in 0.62.3!)

