У меня была ошибка в моем коде, вызванная непреднамеренным сопоставлением символьной переменной с числовой переменной (оба они должны были быть числовыми). Эта ошибка была бы намного легче найти, если бы у R было предупреждение при выполнении такого типа сравнения. Например, почему это не бросайте предупреждениеПочему сравнение между числовыми и символьными переменными не дает предупреждения?
> 'two' < 5
[1] FALSE
но это бросить предупреждение
> as.numeric('two') < 5
[1] NA
Warning message:
NAs introduced by coercion
Это не для меня ясно, что происходит за кулисами, в первом сравнении?
предупреждение не исходит из сравнения, а из 'as.numeric' –
Ответ в том, что это R (разработан, чтобы быть в основном совместимы с S), а не C, Java, или любой другой язык вы ожидали, что это произойдет. Существует довольно много принуждений типов, которые происходят, а не только с операторами сравнения. Это не строго типизированный язык. –
@ Dwin Я понимаю, что R делает все возможное, чтобы понять мой код, но с чем-то столь же бессмысленным, как «два» <5, я просто надеялся, что R предупредит меня. Хотелось бы, чтобы появилась опция, которая могла бы быть включена, что приведет к выходу предупреждения на экран для этого типа вещей (например, gcc -Wall). – fxrhvk