is.atomic() 对比 is.vector()
is.atomic() vs is.vector()
我不明白 is.atomic()
和 is.vector()
之间的区别。根据我的理解,is.vector()
returns TRUE
用于同质一维数据结构。我相信 is.atomic()
returns TRUE
用于逻辑、双精度、整数、字符、复数和原始...但是,is.vector()
不会吗?所以我想也许差异在于它的尺寸,但是 is.atomic()
在双精度数据帧上返回 FALSE
,这让我更加困惑,啊......
还有,原子向量和法向量有什么区别?
感谢您的澄清!
原子向量是R中向量的子集。一般意义上,"vector"可以是原子向量、列表或表达式。 language definition 类将向量定义为 "contiguous cells containing data"。另请参阅 help("is.vector")
和 help("is.atomic")
,它们解释了何时 return TRUE
或 FALSE
.
is.vector(list())
#[1] TRUE
is.vector(expression())
#[1] TRUE
is.vector(numeric())
#[1] TRUE
is.atomic(list())
#[1] FALSE
is.atomic(expression())
#[1] FALSE
is.atomic(numeric())
#[1] TRUE
通俗地说,当我们谈论向量时,我们通常指的是原子向量(甚至可能带有属性)。
R 中的向量可以有 2 个结构,第一个是原子向量,第二个是列表。
如果您创建一个新的空向量,您可以指定获取空列表的模式 vector(mode = "list")
,returns 与 list()
相同。
identical(vector(mode = "list"), list())
[1] TRUE
is.vector(vector(mode = "list"))
returns [1] TRUE
,而 is.atomic(vector(mode = "list")) returns [1] FALSE
。
我不明白 is.atomic()
和 is.vector()
之间的区别。根据我的理解,is.vector()
returns TRUE
用于同质一维数据结构。我相信 is.atomic()
returns TRUE
用于逻辑、双精度、整数、字符、复数和原始...但是,is.vector()
不会吗?所以我想也许差异在于它的尺寸,但是 is.atomic()
在双精度数据帧上返回 FALSE
,这让我更加困惑,啊......
还有,原子向量和法向量有什么区别?
感谢您的澄清!
原子向量是R中向量的子集。一般意义上,"vector"可以是原子向量、列表或表达式。 language definition 类将向量定义为 "contiguous cells containing data"。另请参阅 help("is.vector")
和 help("is.atomic")
,它们解释了何时 return TRUE
或 FALSE
.
is.vector(list())
#[1] TRUE
is.vector(expression())
#[1] TRUE
is.vector(numeric())
#[1] TRUE
is.atomic(list())
#[1] FALSE
is.atomic(expression())
#[1] FALSE
is.atomic(numeric())
#[1] TRUE
通俗地说,当我们谈论向量时,我们通常指的是原子向量(甚至可能带有属性)。
R 中的向量可以有 2 个结构,第一个是原子向量,第二个是列表。
如果您创建一个新的空向量,您可以指定获取空列表的模式 vector(mode = "list")
,returns 与 list()
相同。
identical(vector(mode = "list"), list())
[1] TRUE
is.vector(vector(mode = "list"))
returns [1] TRUE
,而 is.atomic(vector(mode = "list")) returns [1] FALSE
。