R 强制字符串为int
有人能解释为什么R中会发生以下情况: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”
> 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)
的结果。