by_cyl <- group_by(mtcars, cyl)
summarise(by_cyl, mean(disp), mean(hp))
filter(by_cyl, disp == max(disp))
# summarise peels off a single layer of grouping
by_vs_am <- group_by(mtcars, vs, am)
by_vs <- summarise(by_vs_am, n = n())
groups(by_vs)
summarise(by_vs, n = sum(n))
# use ungroup() to remove if not wanted
# You can group by expressions: this is just short-hand for
# a mutate followed by a simple group_by
group_by(mtcars, vsam = vs + am)
# By default, group_by increases grouping. Use add = FALSE to set groups
groups(group_by(by_cyl, vs, am))
groups(group_by(by_cyl, vs, am, add = FALSE))
# Duplicate groups are silently dropped
groups(group_by(by_cyl, cyl, cyl))
Run the code above in your browser using DataLab