3 votes

Affichez le dataframe dans la console lors des étapes intermédiaires de la chaîne dplyr

Lors du débogage des chaînes dplyr dans une fonction, je veux souvent pouvoir imprimer les changements intermédiaires d'un data.frame dans la console. Comment puis-je faire cela?

Par exemple:

data(cars)
cars %>% group_by(speed) %>% 
  summarize(dist_mean = mean(dist)) %>%
  [insérer une fonction d'impression] %>% 
  group_by(speed > 10) %>%
  summarize(dist_mean = mean(dist_mean)) %>%
  [insérer une fonction d'impression]

Y a-t-il quelque chose que je puisse faire pour remplacer [insérer une fonction d'impression] pour imprimer l'état actuel du dataframe dans la console, tout en continuant la chaîne sans interruption?

4voto

Simon.S.A. Points 908

Essayez le T-pipe : %T>%.

À partir de la documentation :

Envoyer une valeur en avant dans une fonction ou expression d'appel et retourner la valeur originale au lieu du résultat. Cela est utile lorsqu'une expression est utilisée pour son effet secondaire, comme le tracé ou l'impression.

Il y a un bon exemple de cela ici avec les deux autres commandes de pipe moins courantes.

Réinsertion dans votre contexte original :

data(cars)
cars %>% group_by(speed) %>% 
  summarize(dist_moyenne = mean(dist)) %T>%
  print() %>% 
  group_by(speed > 10) %>%
  summarize(dist_moyenne = mean(dist_moyenne)) %T>%
  print()

Édition : Selon le commentaire de @Ritchie Sacramento, les pipes font partie du package magrittr. Ils semblent également être ré-exportés par dplyr. Si ils ne fonctionnent pas après avoir appelé library(dplyr), vous devrez alors appeler library(magrittr) pour y accéder.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X