Comment puis-je utiliser dplyr appliquer une fonction à tous les non-group_by colonnes?
Je suis en train d'utiliser le dplyr paquet d'appliquer une fonction à toutes les colonnes de données.image qui ne sont pas regroupés, ce qui, je le ferais avec aggregate()
:
aggregate(. ~ Species, data = iris, mean)
où mean
est appliqué à toutes les colonnes non utilisées pour le regroupement. (Oui, je sais que je peux utiliser l'ensemble, mais j'essaie de comprendre dplyr.)
Je peux utiliser summarize
comme ceci:
species <- group_by(iris, Species)
summarize(species,
Sepal.Length = mean(Sepal.Length),
Sepal.Width = mean(Sepal.Width))
Mais est-il un moyen d'avoir mean()
appliquée à tous colonnes qui ne sont pas regroupés, semblable à la . ~
notation de aggregate()
? J'ai un ensemble de données.cadre avec 30 colonnes que je veux à l'ensemble de la rédaction des déclarations individuelles n'est pas l'idéal.
- Voir ce précédent DONC Q/A> .
Vous devez vous connecter pour publier un commentaire.
Si vous êtes prêt à essayer une expérimentales dplyr, vous pouvez essayer le
nouveau (et encore au stade expérimental)
summarise_each()
:Commentaires appréciés!
Il apparaîtra dans dplyr 0.2.
[.data.table
(dt, , liste(médiane = médiane(CALENDAR_YEAR_MONTH, : la Colonne 1 de résultat pour le groupe 4 est de type 'integer', mais attend de type "double". Les types de colonnes doit être uniforme pour chaque groupe.summarize_each()
a été dépréciée en faveur desummarize_all()
Cela vous obtiendrez presque tout de la façon
dplyr
.do()
de cette façon, car il est susceptible de changer dans 0,2dplyr
? Dansdata.table
je peux fairedata.table(iris)[,lapply(.SD, mean),Species]
.