is.atomic()vs is.vector()

时间:2017-11-03 07:31:44

标签: r vector data-structures atomic typeof

我不理解is.atomic()is.vector()之间的区别。根据我的理解,is.vector()返回TRUE的同类1D数据结构。我相信is.atomic()会为逻辑,双精度,整数,字符,复合体和原始数据返回TRUE ...但是,我也不会is.vector()?所以我想也许差异在于它的维度,但is.atomic()在双打数据帧上返回FALSE,这让我更加困惑啊......

另外,原子矢量和法线矢量有什么区别?

感谢您的澄清!

2 个答案:

答案 0 :(得分:6)

原子向量是R中向量的子集。在一般意义上,“向量”可以是原子向量,列表或表达式。 language definition种类将向量定义为“包含数据的连续单元格”。另请参阅help("is.vector")help("is.atomic"),其中说明这些内容何时返回TRUEFALSE

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

通俗地说,当我们谈论向量时,我们通常意味着原子向量(可能甚至是属性)。

答案 1 :(得分:0)

R中的向量可以有2个结构,第一个是原子向量,第二个是列表。

如果您创建一个新的空向量,则可以指定模式以获取空列表document.querySelector("#idOrderOpenTable .openCancelBtn").click() ,该列表返回与vector(mode = "list")相同的内容。

list()

identical(vector(mode = "list"), list()) [1] TRUE 返回is.vector(vector(mode = "list")),而is.atomic(vector(mode =" list"))返回[1] TRUE