I'm reading Hadley Wickham's Advanced R section on coercion, and I can't understand the result of this comparison:
"one" < 2
# [1] FALSE
I'm assuming that R coerces 2 to a character, but I don't understand why R returns FALSE
instead of returning an error. This is especially puzzling to me since
-1 < "one"
# TRUE
So my question is two-fold: first, why this answer, and second, is there a way of seeing how R converts the individual elements within a logical vector like these examples?
From
help("<")
:So in this case, the numeric is of lower precedence than the character. So
2
is coerced to the character"2"
. Comparison of strings in character vectors is lexicographic which, as I understand it, is alphabetic but locale-dependent.