“为什么?”;“一”&书信电报;R中的2等于假?

“为什么?”;“一”&书信电报;R中的2等于假?,r,boolean,comparison,boolean-logic,coercion,R,Boolean,Comparison,Boolean Logic,Coercion,我正在读哈德利·威克姆的《高级R》中关于强迫的部分,我无法理解这个比较的结果: "one" < 2 # [1] FALSE 所以我的问题有两个方面:第一,为什么会有这个答案,第二,有没有一种方法可以看出R是如何将逻辑向量中的单个元素转换为这些示例的?它将2强制转换为一个字符,然后进行字母顺序的比较。数字字符假定在字母字符之前 要对行为有一个大致的了解,请尝试 'a'<'1' '1'<'.' 'b'<'B' 'a'<'B' 'A'<'B' 'C'<'B'

我正在读哈德利·威克姆的《高级R》中关于强迫的部分,我无法理解这个比较的结果:

"one" < 2
# [1] FALSE

所以我的问题有两个方面:第一,为什么会有这个答案,第二,有没有一种方法可以看出R是如何将逻辑向量中的单个元素转换为这些示例的?

它将2强制转换为一个字符,然后进行字母顺序的比较。数字字符假定在字母字符之前

要对行为有一个大致的了解,请尝试

'a'<'1'
'1'<'.'
'b'<'B'
'a'<'B'
'A'<'B'
'C'<'B'

帮助中的
'a'(
提示:
排序(c(“一”、“二”、“一”、“十”))
(10不是必需的,但可能会给您另一个思考的示例:
“10“这种怪癖出现在所有编程语言中,请始终注意您正在使用的数据类型,并将苹果与苹果、橙子与橙子进行比较。强制在R中很普遍。它是一种弱类型语言。如果您不喜欢该功能,请使用Java。当您使用“谢谢你的提示。我可以看到“排序”是如何揭示答案的,但我仍然不明白排序本身是如何工作的。(我尝试了对排序的帮助,但没有找到关于这个特定问题的解释)。(好的,基于BondedDust,我明白为什么“10”<“2”。相关:;我想知道是否有通用的(即跨地区通用的)保证数字在排序顺序中位于字母字符之前?谢谢。我会将这一个和jdharrison的一个标记为都正确,但似乎我只能这样标记其中一个。
'a'<'1'
'1'<'.'
'b'<'B'
'a'<'B'
'A'<'B'
'C'<'B'