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.list
、 is.language
等,以及 demo("is.things")
。
相关用法
- R is.object 对象是“内部分类的”吗?
- R is.language 对象是语言对象吗?
- R is.finite 有限、无限和 NaN 数
- R is.single 对象是单精度类型吗?
- R is.R 我们使用的是 R,而不是 S?
- R is.unsorted 测试对象是否未排序
- R is.function 是类型(原始)函数的对象吗?
- R isS4 测试 S4 对象
- R isSymmetric 测试矩阵或其他对象是否对称(厄米特)
- R invisible 将打印模式更改为不可见
- R icuSetCollate 按 ICU 设置整理
- R identity 恒等函数
- R identical 测试对象是否完全相等
- R integer 整数向量
- R iconv 在编码之间转换字符向量
- R interactive R 是否以交互方式运行?
- R interaction 计算因子交互作用
- R ifelse 条件元素选择
- R file.path 构造文件路径
- R grep 模式匹配和替换
- R getwd 获取或设置工作目录
- R vector 向量 - 创建、强制等
- R lapply 对列表或向量应用函数
- R dump R 对象的文本表示
- R Sys.getenv 获取环境变量
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Is an Object Atomic or Recursive?。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。