47  Частые ошибки

На этой странице приведен список частых ошибок и предлагаемые решения их поиска и устранения.

47.1 Интерпретация сообщений об ошибках

Ошибки в R иногда могут быть загадочными, поэтому Google - ваш друг. Сделайте поиск по сообщению об ошибке и букве “R”, поищите свежие посты в StackExchange.com, stackoverflow.com, community.rstudio.com, twitter (#rstats), а также на других форумах, испольуземых программистами, чтобы обмениваться вопросами и ответами. Попробуйте найти свежие посты, которые решают похожие проблемы.

Если после тщательных поисков вы не можете найти ответ на свою проблему, попробуйте создать воспроизводимых пример (“reprex”) и разместить вопрос сами. См. страницу Получение помощи с советами о том, как создавать и размещать воспроизводимый пример на форумах.

47.2 Частые ошибки

Ниже мы приводим некоторые распространенные ошибки и возможные объяснения/решения. Некоторые из них заимствованы у Ноама Росса, который проанализировал наиболее часто встречающиеся сообщения на форуме Stack Overflow об ошибках R (см. анализ тут)

Опечатки

Error: unexpected symbol in:
"  geom_histogram(stat = "identity")+
  tidyquant::geom_ma(n=7, size = 2, color = "red" lty"

Если вы видите ошибку “unexpected symbol” (неожиданный символ), проверьте отсутствующие запятые

Ошибки пакетов

could not find function "x"...

Это, скорее всего, означает, что вы напечатали имя функции неправильно, либо забыли установить или загрузить пакет

Error in select(data, var) : unused argument (var)

Вы думаете, что вы используете dplyr::select(), но функция select() была замаскированаMASS::select() - уточните dplyr:: или переупорядочите ваши зугрузки пакетов, чтобы dplyr был после всех остальных.

Другие частые ошибки маскирования: plyr::summarise() и stats::filter(). Попробуйте использовать пакет conflicted.

Error in install.packages : ERROR: failed to lock directory ‘C:\Users\Name\Documents\R\win-library\4.0’ for modifying
Try removing ‘C:\Users\Name\Documents\R\win-library\4.0/00LOCK’

Если у вас будет ошибка, где говорится, что нужно удалить файл “00LOCK”, зайдите в библиотеку “R” в директории компьютера (например, R/win-library/) и найдите папку под названием “00LOCK”. Удалите вручную и попробуйте снова установить пакет. Предыдущий процесс установки, скорее всего, был прерван, что привело к этому.

Ошибки объекта

No such file or directory:

Если вы видите такую ошибку при попытке экспорта или импорта: проверьте написание файла или пути к файлу, если путь содержит слэши, убедитесь, что это прямые слэши /, а не обратные \. Также убедитесь, что вы использовали правильное расширение файла (например, .csv, .xlsx).

object 'x' not found 

Это означает, что объект, на который вы ссылаетесь, не существует. Может код выше не был правильно выполнен?

Error in 'x': subscript out of bounds

Это означает, что вы попытались получить к чему-то доступ (к элементу вектора или списку), которого там не было.

Ошибки синтаксиса функций

# ran recode without re-stating the x variable in mutate(x = recode(x, OLD = NEW)
Error: Problem with `mutate()` input `hospital`.
x argument ".x" is missing, with no default
i Input `hospital` is `recode(...)`.

Ошибка выше (argument .x is missing, with no default) является частой для функции mutate(), если вы задаете такую функцию, как recode() или replace_na(), где она ожидает, что вы в качестве первого аргумента зададите имя столбца. Это легко забыть.

Ошибки логики

Error in if

Это скорее всего означает, что утверждение “если” (if) было применено к чему-то, что не является TRUE или FALSE (ИСТИНОЙ или ЛОЖЬЮ).

Ошибки фактора

#Tried to add a value ("Missing") to a factor (with replace_na operating on a factor)
Problem with `mutate()` input `age_cat`.
i invalid factor level, NA generated
i Input `age_cat` is `replace_na(age_cat, "Missing")`.invalid factor level, NA generated

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

Ошибки построения графика

Error: Insufficient values in manual scale. 3 needed but only 2 provided. ggplot() scale_fill_manual() values = c(“orange”, “purple”) … insufficient for number of factor levels … consider whether NA is now a factor level…

Can't add x object

Наверное, у вас лишний + в конце команды ggplot, который вам нужно удалить.

Ошибки R Markdown

Если в сообщении об ошибке написано что-то похожее на Error in options[[sprintf("fig.%s", i)]], проверьте, что опции knitr в верхней части каждого фрагмента кода правильно используют out.width = или out.height = а не fig.width= и fig.height=.

Разное

Посмотрите, может вы изменили порядок глагольных функций dplyr и не заменили оператор канала в середине, либо не удалили оператор канала в конце.

47.3 Ресурсы

Есть еще один пост в блоге, где перечислены распространенные ошибки в программировании в R, с которыми сталкиваются новички