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