Как исправить в R: ошибка выбора неиспользуемых аргументов


Одна ошибка, с которой вы можете столкнуться в R:

Error in select(., cyl, mpg) : unused arguments (cyl, mpg)

Эта ошибка возникает, когда вы пытаетесь использовать функцию select() из пакета dplyr в R, но при этом загружен пакет MASS .

Когда это происходит, R пытается вместо этого использовать функцию select() из пакета MASS и выдает ошибку.

В этом руководстве рассказывается, как именно исправить эту ошибку.

Как воспроизвести ошибку

Предположим, мы пытаемся запустить следующий код, чтобы обобщить переменную в наборе данных mtcars в R:

library(dplyr)
library (MASS)

#find average mpg grouped by 'cyl'
mtcars %>%
 select(cyl, mpg) %>%
 group_by(cyl) %>%
 summarize(avg_mpg = mean(mpg))

Error in select(., cyl, mpg) : unused arguments (cyl, mpg)

Ошибка возникает из-за того, что функция select() из пакета MASS конфликтует с функцией select() из пакета dplyr.

Как исправить ошибку

Самый простой способ исправить эту ошибку — явно указать R использовать функцию select() из пакета dplyr, используя следующий код:

library(dplyr)
library (MASS)

#find average mpg grouped by 'cyl'
mtcars %>%
 dplyr::select(cyl, mpg) %>%
 group_by(cyl) %>%
 summarize(avg_mpg = mean(mpg))

# A tibble: 3 x 2
 cyl avg_mpg
1 4 26.7
2 6 19.7
3 8 15.1

Код успешно выполняется, потому что dplyr::select явно указывает R использовать функцию select() из пакета dplyr вместо пакета MASS.

Дополнительные ресурсы

В следующих руководствах объясняется, как устранять другие распространенные ошибки в R:

Как исправить в R: имена не совпадают с предыдущими именами
Как исправить в R: более длинная длина объекта не кратна более короткой длине объекта
Как исправить в R: контрасты могут применяться только к факторам с 2 или более уровнями

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.