Joe*_*oeF 15 comparison boolean-logic boolean r coercion
我正在阅读Hadley Wickham关于强制的高级R部分,我无法理解这种比较的结果:
"one" < 2
# [1] FALSE
Run Code Online (Sandbox Code Playgroud)
我假设R将2强制转换为一个字符,但我不明白为什么R返回FALSE而不是返回错误.这对我来说尤其令人费解
-1 < "one"
# TRUE
Run Code Online (Sandbox Code Playgroud)
所以我的问题有两个方面:首先,为什么这个答案,第二,有没有办法看到R如何在这些例子中转换逻辑向量中的各个元素?
jdh*_*son 15
来自help("<"):
如果两个参数是不同类型的原子向量,则一个被强制为另一个的类型,优先级(递减)顺序为字符,复数,数字,整数,逻辑和原始.
所以在这种情况下,数字的优先级低于字符.所以2是强迫角色"2".字符向量中字符串的比较是词典,据我所知,它是字母的,但依赖于语言环境.
它将2强制转换为字符,然后按字母顺序进行比较.假设数字字符在字母字符之前
对行为进行总体思考尝试
'a'<'1'
'1'<'.'
'b'<'B'
'a'<'B'
'A'<'B'
'C'<'B'
Run Code Online (Sandbox Code Playgroud)