當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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?。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。