utiliser %>% avec des fonctions de remplacement comme colnames()<-

Comment puis-je utiliser le tuyau de l'opérateur à la pipe en fonction de remplacement comme colnames()<- ?

Voici ce que j'essaie de faire:

library(dplyr)
averages_df <- 
   group_by(mtcars, cyl) %>%
   summarise(mean(disp), mean(hp))
colnames(averages_df) <- c("cyl", "disp_mean", "hp_mean")
averages_df

# Source: local data frame [3 x 3]
# 
#   cyl disp_mean   hp_mean
# 1   4  105.1364  82.63636
# 2   6  183.3143 122.28571
# 3   8  353.1000 209.21429

Mais, idéalement, il serait quelque chose comme:

averages_df <- 
  group_by(mtcars, cyl) %>%
  summarise(mean(disp), mean(hp)) %>%
  add_colnames(c("cyl", "disp_mean", "hp_mean"))

Est-il un moyen de faire cela sans écrire une spécialité de la fonction à chaque fois?

Les réponses ici sont un début, mais pas exactement à ma question: Le chaînage des opérateurs arithmétiques dans dplyr

  • Vous pouvez nommer vos entrées summarise - group_by(mtcars, cyl) %>% summarise(disp_mean=mean(disp), hp_mean=mean(hp)) Bien que je ne vois pas comment à l'aide de colnames est que beaucoup de glisser. Est-ce que chaque petite chose à faire dans dplyr?
  • Je crois qu'il y a un rename() fonction dans dplyr. Ou oui, faire ce que @thelatemail dit.
  • Ou simplement l'utiliser setNames comme dans group_by(mtcars, cyl) %>% summarise(mean(disp), mean(hp)) %>% setNames(., c("cyl", "disp_mean", "hp_mean"))
  • maintenant, pourquoi n'ai-je pas penser que, vu comme je viens de le souligner en plus que 2 minutes plus tôt?
  • J'ai écrit "names<-"(., ... et puis je me suis dit "attendez une minute"...
  • Merci pour ces suggestions. Il est vrai que chaque petite chose n'a pas besoin d'être fait dans dplyr. rename() et setNames résout le problème en question. Mais il y a d'autres "remplacement" des fonctions que faire quelque chose comme foo(x) <- y. Je me demandais si dplyr a une façon de les transmettre.
  • Vous pouvez utiliser cette fonction de la même manière, comme indiqué dans la Henriks réponse.

InformationsquelleAutor Alex Coppock | 2015-01-22