| is.recursive {base} | R Documentation |
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.
is.atomic(x) is.recursive(x)
x |
object to be tested. |
These are generic: you can write methods to handle specific classes of objects, see InternalMethods. The description here applies only to the default method.
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).
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
is.list,
is.language, etc,
and the demo("is.things").
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!)