Почему сравнение между числовыми и символьными переменными не дает предупреждения?

У меня была ошибка в моем коде, вызванная непреднамеренным сопоставлением символьной переменной и числовой переменной (оба они должны были быть числовыми). Эта ошибка была бы намного легче найти, если бы у R было предупреждение при выполнении такого типа сравнения. Например, почему это не вызывает предупреждение.

> 'two' < 5
[1] FALSE

но это вызывает предупреждение

> as.numeric('two') < 5
[1] NA
Warning message:
NAs introduced by coercion 

Мне непонятно, что происходит за кулисами в первом сравнении?

Ответ 1

В вашем примере 5 преобразуется в символ, поэтому тест те же, что и 'two' < as.character(5).

От ?Comparison:

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