web-dev-qa-db-fra.com

dplyr summary_each avec na.rm

Existe-t-il un moyen de demander à dplyr d'utiliser summarise_each Avec na.rm=TRUE? Je voudrais prendre la moyenne des variables avec summarise_each("mean") mais je ne sais pas comment le spécifier pour ignorer les valeurs manquantes.

57
paljenczy

Après les liens dans la doc, il semble que vous puissiez utiliser funs(mean(., na.rm = TRUE)):

library(dplyr)
by_species <- iris %>% group_by(Species)
by_species %>% summarise_each(funs(mean(., na.rm = TRUE)))
92
flodel

Comme summarise_each est obsolète maintenant, une réponse supplémentaire utilisant summarise_all.

  • On peut encore spécifier na.rm = TRUEdans l'argument funs (cf la réponse de @flodel: il suffit de remplacer summarise_each avec summarise_all).
  • Mais vous pouvez aussi ajouter na.rm = TRUEafter l'argument funs.

Cela est utile lorsque vous souhaitez appeler plus d’une seule fonction, par exemple:

require(dplyr)

iris %>% 
  group_by(Species) %>%
  summarise_all(funs(mean, max, sd), na.rm = TRUE)
13
Tjebo