Я читаю раздел Hadley Wickham Advanced R о принуждении, и я не могу понять ответ на этот вопрос. Я предполагаю, что R принуждает 2 к символу, но я не понимаю, почему R возвращает FALSE вместо того, чтобы возвращать ошибку. (Это особенно озадачивает меня, поскольку -1 < "one" возвращает TRUE). Поэтому мой вопрос двоякий: во-первых, почему этот ответ, а во-вторых, есть ли способ увидеть, как R преобразует отдельные элементы в логический вектор, подобный этим примерам?
Почему "один" <2... ЛОЖЬ в R?
Ответ 1
От help("<")
:
Если два аргумента являются атомными векторами разных типов, принуждение к типу другого, (убывающий) порядок приоритета быть символом, сложным, числовым, целым, логическим и необработанным.
Итак, в этом случае числовое значение имеет более низкий приоритет, чем символ. Таким образом, 2
принуждается к символу "2"
. Сравнение строк в векторах символов является лексикографическим, что, как я понимаю, является буквенным, но зависящим от языка.
Ответ 2
Он принуждает 2 к символу, затем он выполняет алфавитное сравнение. Предполагается, что числовые символы поступают в алфавитном порядке
чтобы получить общее представление о поведении try
'a'<'1'
'1'<'.'
'b'<'B'
'a'<'B'
'A'<'B'
'C'<'B'