Подтвердить что ты не робот

Почему "один" <2... ЛОЖЬ в R?

Я читаю раздел Hadley Wickham Advanced R о принуждении, и я не могу понять ответ на этот вопрос. Я предполагаю, что R принуждает 2 к символу, но я не понимаю, почему R возвращает FALSE вместо того, чтобы возвращать ошибку. (Это особенно озадачивает меня, поскольку -1 < "one" возвращает TRUE). Поэтому мой вопрос двоякий: во-первых, почему этот ответ, а во-вторых, есть ли способ увидеть, как R преобразует отдельные элементы в логический вектор, подобный этим примерам?

4b9b3361

Ответ 1

От help("<"):

Если два аргумента являются атомными векторами разных типов, принуждение к типу другого, (убывающий) порядок приоритета быть символом, сложным, числовым, целым, логическим и необработанным.

Итак, в этом случае числовое значение имеет более низкий приоритет, чем символ. Таким образом, 2 принуждается к символу "2". Сравнение строк в векторах символов является лексикографическим, что, как я понимаю, является буквенным, но зависящим от языка.

Ответ 2

Он принуждает 2 к символу, затем он выполняет алфавитное сравнение. Предполагается, что числовые символы поступают в алфавитном порядке

чтобы получить общее представление о поведении try

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