These verbs are scoped variants of summarise()
, mutate()
and
transmute()
. They apply operations on a selection of variables.
summarise_all()
, mutate_all()
and transmute_all()
apply the
functions to all (non-grouping) columns.
summarise_at()
, mutate_at()
and transmute_at()
allow you to
select columns using the same name-based select_helpers just
like with select()
.
summarise_if
(), mutate_if
() and transmute_if()
operate on
columns for which a predicate returns TRUE
.
summarise_all(.tbl, .funs, ...)summarise_if(.tbl, .predicate, .funs, ...)
summarise_at(.tbl, .vars, .funs, ..., .cols = NULL)
summarize_all(.tbl, .funs, ...)
summarize_if(.tbl, .predicate, .funs, ...)
summarize_at(.tbl, .vars, .funs, ..., .cols = NULL)
mutate_all(.tbl, .funs, ...)
mutate_if(.tbl, .predicate, .funs, ...)
mutate_at(.tbl, .vars, .funs, ..., .cols = NULL)
transmute_all(.tbl, .funs, ...)
transmute_if(.tbl, .predicate, .funs, ...)
transmute_at(.tbl, .vars, .funs, ..., .cols = NULL)
A tbl
object.
List of function calls generated by funs()
, or a
character vector of function names, or simply a function.
Bare formulas are passed to rlang::as_function()
to create
purrr-style lambda functions. Note that these lambda prevent
hybrid evaluation from happening and it is thus more efficient to
supply functions like mean()
directly rather than in a
lambda-formula.
Additional arguments for the function calls in
.funs
. These are evaluated only once, with tidy dots support.
A predicate function to be applied to the columns
or a logical vector. The variables for which .predicate
is or
returns TRUE
are selected. This argument is passed to
rlang::as_function()
and thus supports quosure-style lambda
functions and strings representing function names.
A list of columns generated by vars()
,
a character vector of column names, a numeric vector of column
positions, or NULL
.
This argument has been renamed to .vars
to fit
dplyr's terminology and is deprecated.
A data frame. By default, the newly created columns have the shortest names needed to uniquely identify the output. To force inclusion of a name, even when not needed, name the input (see examples for details).
# NOT RUN { # The scoped variants of summarise() and mutate() make it easy to # apply the same transformation to multiple variables: iris %>% group_by(Species) %>% summarise_all(mean) # There are three variants. # * _all affects every variable # * _at affects variables selected with a character vector or vars() # * _if affects variables selected with a predicate function: # The _at() variants directly support strings: starwars %>% summarise_at(c("height", "mass"), mean, na.rm = TRUE) # You can also supply selection helpers to _at() functions but you have # to quote them with vars(): iris %>% mutate_at(vars(matches("Sepal")), log) starwars %>% summarise_at(vars(height:mass), mean, na.rm = TRUE) # The _if() variants apply a predicate function (a function that # returns TRUE or FALSE) to determine the relevant subset of # columns. Here we apply mean() to the numeric columns: starwars %>% summarise_if(is.numeric, mean, na.rm = TRUE) # mutate_if() is particularly useful for transforming variables from # one type to another iris %>% as_tibble() %>% mutate_if(is.factor, as.character) iris %>% as_tibble() %>% mutate_if(is.double, as.integer) # --------------------------------------------------------------------------- # If you want apply multiple transformations, use funs() by_species <- iris %>% group_by(Species) by_species %>% summarise_all(funs(min, max)) # Note that output variable name now includes the function name, in order to # keep things distinct. # You can express more complex inline transformations using . by_species %>% mutate_all(funs(. / 2.54)) # Function names will be included if .funs has names or multiple inputs by_species %>% mutate_all(funs(inches = . / 2.54)) by_species %>% summarise_all(funs(med = median)) by_species %>% summarise_all(funs(Q3 = quantile), probs = 0.75) by_species %>% summarise_all(c("min", "max")) # }
Run the code above in your browser using DataCamp Workspace