R 递归对象和原子对象的定义是什么?
说 如果R 递归对象和原子对象的定义是什么?,r,R,说 如果x是原子类型(或NULL)且FALSE 否则 is.recursive如果x具有递归(list-like)结构,则返回TRUE 和FALSE否则 is.atomic对于原子类型(“logical”,“integer”)是真的, “数字”,“复杂”,“字符”和“原始”)和空值 除原子对象外,大多数类型的对象都被视为递归对象 类型、NULL和符号(由as.name给出) 根据上面的内容,我认为向量是一个递归对象,但这两个函数显示了相反的结果 函数(如c)也是递归对象 那么R中递归对象和原子对
x
是原子类型(或NULL
)且FALSE
否则
is.recursive
如果x
具有递归(list
-like)结构,则返回TRUE
和FALSE
否则
is.atomic
对于原子类型(“logical”
,“integer”
)是真的,
“数字”
,“复杂”
,“字符”
和“原始”
)和空值
除原子对象外,大多数类型的对象都被视为递归对象
类型、NULL
和符号(由as.name
给出)
根据上面的内容,我认为向量是一个递归对象,但这两个函数显示了相反的结果
函数(如c
)也是递归对象
那么R中递归对象和原子对象的定义是什么呢?对于R中的对象类型是递归的,这意味着您可以将这个对象作为一个条目保存它自己的类型。原子是相反的。 向量是原子的,列表是递归的,您可以很容易地进行检查 一个原子结构,像一个向量,将有一个平面结构。例如,以下代码将导致相同的结果:
c(1,2)
c(1,c(2))
此外,向量中的所有元素都将具有相同的类型
c(1,'a')
将强制1作为字符
另一方面,列表可以具有嵌套结构,例如
list(1,list(2,3))
根据我的理解,如果我错了,请纠正我,在有嵌套目录的地方使用递归参数。例如
如果我必须创建一个目录'dir1'和它自己的子目录'dir2',我会使用递归参数
dir.create(file.path(“dir1”、“dir2”),recursive=TRUE)
同样,删除目录及其所有内容时使用递归参数,以确认您知道正在执行该任务
取消链接(“dir2”,recursive=TRUE)
一个自然的起点是读取向量。为什么你认为向量是递归的?您提供的链接中的示例包括对向量调用
is.atomic
和is.recursive
,结果分别为TRUE
和FALSE
。