| is.recursive {base} | R Documentation |
Is an Object Atomic or Recursive?
Description
is.atomic returns TRUE if x is an atomic vector
(or NULL) 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
is.atomic is true for the atomic vector types
("logical", "integer", "numeric",
"complex", "character" and "raw") and NULL.
Most types of language objects are regarded as recursive: those which
are not are the atomic vector types, NULL and symbols (as given
by as.name).
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
require(stats)
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!)