R:“相同”的惊人行为

时间:2019-04-02 10:22:14

标签: r

在R中,我偶然发现了函数identical()的这种令人惊讶的行为。

使用简单的==

(ncol(dpx)-1) == length(test)
  

但使用identical

identical((ncol(dpx)-1) , length(test))
  

它们都是整数类型(每个为81)。

发生了什么事?

1 个答案:

答案 0 :(得分:1)

identical是“测试两个对象是否完全相等的安全可靠方法。”由于ncol(dpx) - 1是数字,因此1返回数字向量,而length返回整数。

@amatsuo_net指出,我们可以稍作更改代码并将1转换为整数类型。

identical((ncol(iris) + 1L - 1L), length(iris))
# [1] TRUE