我刚刚开始学习R,在我的第一个作业中,我遇到了一个问题,我需要比较一堆变量,而在这样做的时候,我不应该在比较两个变量时得到错误,不仅在它们不相等的时候而且当他们的类型不一样时。 例如:
7 == "7"
给出true,哪些应该是false。 目前,我的做法如下:
var1 = 8 == "8"
var2 = typeof(8) == typeof("8")
var1 & var2
我想应该有一些更简单的方法。 它似乎隐含地将7转换为" 7"就像我们在字符向量中添加数字一样。 那么有没有办法在1行中得到相同的结果?
答案 0 :(得分:5)
来自?Comparison
帮助页面:
如果两个参数是不同类型的原子向量,则一个被强制为另一个的类型,优先级(递减)的顺序为字符,复数,数字,整数,逻辑和原始。
在同一帮助页面上,作者警告在==
- 表达式中使用!=
和if
进行测试。他们建议改为使用identical()
:
7 == "7"
# TRUE
identical(7, "7")
# FALSE