Ваш код отлично работает со мной. Я использую R 3.3.2.
Я думаю, что решение вашей проблемы - это проверить, включены ли предупреждающие сообщения в сеансе. Если вы читаете ? Опции, вы заметите, что между значениями, возвращаемыми функцией, есть значение предупреждения.
Из справки: предостеречь: устанавливает обработку предупредительных сообщений. Если предупреждение отрицательное, все предупреждения игнорируются. Если предупреждение равно нулю (по умолчанию), предупреждения сохраняются до тех пор, пока функция верхнего уровня не вернется. Если было сообщено о 10 или менее предупреждениях, они будут напечатаны иначе, если будет указано, сколько из них было сигнализировано. Объект, называемый last.warning, создается и может быть напечатан с помощью предупреждений функции. Если предупреждение одно, предупреждения печатаются по мере их появления. Если предупреждение два или более, все предупреждения превращаются в ошибки.
Итак, если у вас есть отрицательное значение для предупреждения, вы не увидите предупреждающие сообщения. Вы можете включить предупреждающие сообщения следующим образом:
options(warn=1)
Попробуйте изменить это и повторно запустить свой код.
Что именно не работает? Кажется, это работает для меня ... – joran
Возможно, вы не включили отображение предупреждений? –
Первый ничего не возвращает. Вторая выводит предупреждение. –