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