递归对象和原子对象的定义是什么?

3 r

R文档

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

如果x具有递归(类似列表)结构,则is.recursive返回TRUE,否则返回FALSE.

对于原子类型("逻辑","整数","数字","复杂","字符"和"原始")和NULL,is.atomic为true.

除了原子类型,NULL和符号(由as.name给出)之外,大多数类型的对象都被认为是递归的.

根据以上所述,我认为向量是一个递归对象,但两个函数显示相反.

函数(如c)也是递归对象

那么R 中递归对象和原子对象的定义是什么?

ben*_*zer 9

对R中的一种对象进行递归意味着您可以将此对象保持为自己的类型作为条目.原子是相反的.向量是原子的,列表是递归的,因为您可以轻松检查.

像矢量一样的原子结构将具有扁平结构.例如,以下代码将导致相同的结果:

c(1,2)
c(1, c(2))

矢量中的所有元素也将具有相同的类型

c(1, 'a')

将强制1作为角色

另一方面,列表可以具有嵌套结构

list(1, list(2, 3))