Comment réparer dans R : erreur dans la sélection des arguments inutilisés



Une erreur que vous pouvez rencontrer dans R est :

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

Cette erreur se produit lorsque vous tentez d’utiliser la fonction select() du package dplyr dans R mais que vous chargez également le package MASS .

Lorsque cela se produit, R tente d’utiliser la fonction select() du package MASS à la place et une erreur est générée.

Ce didacticiel explique exactement comment corriger cette erreur.

Comment reproduire l’erreur

Supposons que nous essayions d’exécuter le code suivant pour résumer une variable dans l’ensemble de données mtcars dans 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)

Une erreur se produit car la fonction select() du package MASS entre en conflit avec la fonction select() du package dplyr.

Comment réparer l’erreur

Le moyen le plus simple de corriger cette erreur est d’indiquer explicitement à R d’utiliser la fonction select() du package dplyr en utilisant le code suivant :

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

Le code s’exécute avec succès car dplyr::select indique explicitement à R d’utiliser la fonction select() du package dplyr au lieu du package MASS.

Ressources additionnelles

Les didacticiels suivants expliquent comment résoudre d’autres erreurs courantes dans R :

Comment réparer dans R : les noms ne correspondent pas aux noms précédents
Comment réparer dans R : la longueur d’un objet plus longue n’est pas un multiple de la longueur d’un objet plus courte
Comment réparer dans R : les contrastes ne peuvent être appliqués qu’à des facteurs avec 2 niveaux ou plus

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *