MINI MINI MANI MO
%
% Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
%
\name{group_by}
\alias{group_by}
\alias{group_by_}
\alias{groups}
\alias{ungroup}
\alias{group_size}
\alias{n_groups}
\title{Group Rows by One or More Columns}
\usage{
group_by(.data, ..., add = FALSE)
group_by_(.data, ..., .dots, add = FALSE)
groups(x)
ungroup(x)
group_size(x)
n_groups(x)
}
\arguments{
\item{.data}{An \code{\link[OREbase:ore.frame-class]{ore.frame}} object.}
\item{x}{A grouped \code{\link[OREbase:ore.frame-class]{ore.frame}} object.}
\item{...}{Columns to group by.}
\item{add}{By default, \code{add = FALSE}, \code{group_by} overrides
the existing groups. Use \code{add = TRUE} to add new groups.}
\item{.dots}{Used to work around non-standard evaluation. See
\code{\link[dplyr]{group_by_}} for details.}
}
\description{
\code{group_by} Groups an \code{\link[OREbase:ore.frame-class]{ore.frame}}
object over the specified columns.
Functions \code{\link{summarise}}, \code{\link{top_n}}, \code{\link{count}}
can perform on such an \code{ore.frame} object group-wise.
\code{ungroup} Drops the grouping from the input \code{ore.frame} object.
\code{group_size} Lists the number of rows in each group.
\code{groups} Shows the names of the grouping columns.
\code{n_groups} Gives the number of groups.
}
\examples{
MTCARS <- ore.push(mtcars)
by_cyl <- group_by(MTCARS, cyl)
arrange(summarise(by_cyl, mean(disp), mean(hp)), cyl)
# summarise drops one layer of grouping
by_vs_am <- group_by(MTCARS, vs, am)
by_vs <- summarise(by_vs_am, n = n())
arrange(by_vs, vs, am)
arrange(summarise(by_vs, n = sum(n)), vs)
# remove grouping
summarise(ungroup(by_vs), n = sum(n))
# group by expressions with mutate
arrange(group_size(group_by(mutate(MTCARS, vsam = vs + am), vsam)), vsam)
# rename the grouping column
groups(rename(group_by(MTCARS, vs), vs2 = vs))
# add more grouping columns
groups(group_by(by_cyl, vs, am))
groups(group_by(by_cyl, vs, am, add = TRUE))
# Duplicate groups are dropped
groups(group_by(by_cyl, cyl, cyl))
library(magrittr)
by_cyl_gear_carb <- MTCARS \%>\% group_by(cyl, gear, carb)
n_groups(by_cyl_gear_carb)
arrange(group_size(by_cyl_gear_carb), cyl, gear, carb)
by_cyl <- MTCARS \%>\% group_by(cyl)
# number of groups
n_groups(by_cyl)
# size of each group
arrange(group_size(by_cyl), cyl)
}
\seealso{
\code{\link{summarise}}
}
OHA YOOOO