在R中,我偶然发现了函数identical()
的这种令人惊讶的行为。
使用简单的==
:
(ncol(dpx)-1) == length(test)
是
但使用identical
:
identical((ncol(dpx)-1) , length(test))
假
它们都是整数类型(每个为81)。
发生了什么事?
答案 0 :(得分:1)
identical
是“测试两个对象是否完全相等的安全可靠方法。”由于ncol(dpx) - 1
是数字,因此1
返回数字向量,而length返回整数。
@amatsuo_net指出,我们可以稍作更改代码并将1
转换为整数类型。
identical((ncol(iris) + 1L - 1L), length(iris))
# [1] TRUE