当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R is.recursive 对象是原子的还是递归的?


R语言 is.recursive 位于 base 包(package)。

说明

如果 x 是原子类型(或 NULL ),则 is.atomic 返回 TRUE ,否则返回 FALSE

如果 x 具有递归 (list-like) 结构,则 is.recursive 返回 TRUE,否则返回 FALSE

用法

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

参数

x

被测试的对象。

细节

is.atomic 对于 atomic 类型( "logical""integer""numeric""complex""character""raw" )和 NULL 为 true。

大多数类型的对象都被视为递归的。例外是原子类型,NULL,符号(由下式给出as.name),S4带有槽、外部指针的对象,以及——很少可见R—弱引用和字节码,参见typeof.

通常将原子类型称为“原子向量”,但请注意,is.vector 施加了进一步的限制:对象可以是原子的,但不能是向量(在这个意义上)。

这些是primitive 函数。

例子

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 - a list is a list
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
is.a.r(quote(exp))      # FALSE FALSE

参考

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

也可以看看

is.listis.language 等,以及 demo("is.things")

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Is an Object Atomic or Recursive?。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。