R 强制字符串为int

R 强制字符串为int,r,R,有人能解释为什么R中会发生以下情况: > 0.0 < "14.9a" [1] TRUE > 2.03 < "14.9a" [1] FALSE > 10.11006 < "14.9a" [1] TRUE >0.02.0310.11006“0.0”“2.03”“10.11006”

有人能解释为什么R中会发生以下情况:

> 0.0 < "14.9a"
[1] TRUE

> 2.03 < "14.9a"
[1] FALSE

> 10.11006 < "14.9a"
[1] TRUE
>0.0<“14.9a”
[1] 真的
>2.03<“14.9a”
[1] 假的
>10.11006<“14.9a”
[1] 真的

当“14.9a”在内部强制为int时会发生什么?它不能像第二个例子那样忽略非数字字符。

我认为它做的正好相反,将int转换为字符串

> "0.0" < "14.9a"
[1] TRUE

> "2.03" < "14.9a"
[1] FALSE

> "10.11006" < "14.9a"
[1] TRUE
>“0.0”<“14.9a”
[1] 真的
>“2.03”<“14.9a”
[1] 假的
>“10.11006”<“14.9a”
[1] 真的
从“帮助”页面:

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

而且:

字符向量中字符串的比较在 使用所用区域设置的排序顺序的字符串:请参阅 地区。区域设置(如en_US)的排序顺序通常为 与C(应该使用ASCII)不同,这可能令人惊讶。 注意不要对排序规则进行任何假设


根据
?“正确,但请注意,第一种情况是
“0”<“14.9a”
,而不是
“0.0”
。这几乎是
作为.character(0.0)
的结果。