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!)