r - 为什么数字变量和字符变量之间的比较不会给出警告?

标签 r

我的代码中有一个错误,这是由于字符变量和数字变量(它们都应该是数字)之间的无意比较造成的。如果 R 在进行此类比较时有警告,则该错误会更容易找到。例如,为什么这不会引发警告

> 'two' < 5
[1] FALSE

但这确实会发出警告
> as.numeric('two') < 5
[1] NA
Warning message:
NAs introduced by coercion 

我不清楚第一次比较中幕后发生了什么?

最佳答案

在您的示例中 5转换为字符,所以测试与'two' < as.character(5)相同.

来自 ?Comparison :

If the two arguments are atomic vectors of different types, one is coerced to the type of the other, the (decreasing) order of precedence being character, complex, numeric, integer, logical and raw.

关于r - 为什么数字变量和字符变量之间的比较不会给出警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37134174/

相关文章:

r - 禁用图例双击事件

r - 从 lme 模型中提取置信区间

r - magrittr 和日期对象

r - 如何制作 "pretty rounding"?

r - 在 R 中逐步回归中提取最终系数

r - R 中日期和一些相关输出的线性回归

r - sp::over()用于多边形分析中的点

r - qicharts2和ggplots2如何结合使用?

regex - 非贪婪字符串正则表达式匹配

r - 根据日期之间的等级逐行选择值