为什么是&#34; <整数>&#34; R中== <integer> true

时间:2017-10-02 15:59:17

标签: r

我刚刚开始学习R,在我的第一个作业中,我遇到了一个问题,我需要比较一堆变量,而在这样做的时候,我不应该在比较两个变量时得到错误,不仅在它们不相等的时候而且当他们的类型不一样时。 例如:

7 == "7"

给出true,哪些应该是false。 目前,我的做法如下:

var1 = 8 == "8"
var2 = typeof(8) == typeof("8")
var1 & var2

我想应该有一些更简单的方法。 它似乎隐含地将7转换为&#34; 7&#34;就像我们在字符向量中添加数字一样。 那么有没有办法在1行中得到相同的结果?

1 个答案:

答案 0 :(得分:5)

来自?Comparison帮助页面:

  

如果两个参数是不同类型的原子向量,则一个被强制为另一个的类型,优先级(递减)的顺序为字符,复数,数字,整数,逻辑和原始。

在同一帮助页面上,作者警告在== - 表达式中使用!=if进行测试。他们建议改为使用identical()

7 == "7"
# TRUE
identical(7, "7")
# FALSE