就像标题中所说的那样,"1" == 1
为什么是TRUE?这背后的真正原因是什么? R是想和善还是其他呢?我一直在思考,因为“ 1”(或任何数字实际上都没有关系)在R中作为字符读取时,如果与as.numeric(1)
或as.integer(1)
比较,它将自动返回FALSE。
> as.character(1) == as.numeric(1)
[1] TRUE
或
> "1" == 1
[1] TRUE
我想这是一个简单的问题,但我想得到一个答案。谢谢。
答案 0 :(得分:5)
根据?==
对于数值和复数值,请记住==和!=不允许分数的有限表示,也不允许四舍五入。几乎总是将all.equal与same一起使用。 S
在另一段中也写成
x,y
原子向量,符号,调用或已为其编写方法的其他对象。如果两个参数是不同类型的原子向量,则一个被强制转换为另一个,第二个参数的优先级(降序)顺序为字符,复杂,数字,整数,逻辑和原始。
identical(as.character(1), as.numeric(1))
#[1] FALSE