Comment réparer : erreur dans n() : cette fonction ne doit pas être appelée directement



Une erreur que vous pouvez rencontrer dans R est :

Error in n() : This function should not be called directly

Cette erreur se produit généralement lorsque vous essayez d’utiliser la fonction n() du package dplyr , mais que le package plyr est chargé après le package dplyr .

Ce didacticiel explique exactement comment corriger cette erreur.

Comment reproduire l’erreur

Supposons que nous ayons le bloc de données suivant dans R :

#define data frame
df <- data.frame(team=rep(c('A', 'B'), each=5),
                 points=c(2, 4, 6, 8, 10, 12, 14, 16, 18, 20),
                 assists=c(4, 7, 11, 16, 22, 29, 38, 49, 63, 80))

#view data frame
df

   team points assists
1     A      2       4
2     A      4       7
3     A      6      11
4     A      8      16
5     A     10      22
6     B     12      29
7     B     14      38
8     B     16      49
9     B     18      63
10    B     20      80

Supposons maintenant que nous essayions d’utiliser la fonction summary() de dplyr pour compter le nombre de lignes, regroupées par équipe :

library(dplyr)
library(plyr)

#attempt to count rows by team
df %>%
  group_by(team) %>%
  summarize(count = n())

Error in n() : This function should not be called directly 

Nous recevons une erreur car nous avons chargé le package plyr après le package dplyr , ce qui provoque des problèmes.

Comment réparer l’erreur

La façon de corriger cette erreur consiste simplement à utiliser dplyr:summarize afin que R sache exactement à partir de quel package vous souhaitez utiliser la fonction de résumé :

library(dplyr)
library(plyr)

#count rows by team
df %>%
  group_by(team) %>%
  dplyr::summarize(count = n())

# A tibble: 2 x 2
  team  count
   
1 A         5
2 B         5

Notez que nous sommes capables de compter le nombre de lignes regroupées par équipe sans aucune erreur cette fois puisque nous avons utilisé dplyr::summarize pour effectuer le résumé.

Ressources additionnelles

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

Comment réparer dans R : erreur dans as.Date.numeric(x) : « origine » doit être fournie
Comment réparer : erreur dans stripchart.default(x1, …) : méthode de traçage non valide
Comment réparer : erreur dans eval (predvars, data, env) : objet ‘x’ introuvable

Ajouter un commentaire

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