| pivot_wider {tidyr} | R Documentation |
pivot_wider() "widens" data, increasing the number of columns and
decreasing the number of rows. The inverse transformation is
pivot_longer().
Learn more in vignette("pivot").
pivot_wider( data, id_cols = NULL, names_from = name, names_prefix = "", names_sep = "_", names_repair = "check_unique", values_from = value, values_fill = NULL, values_fn = NULL )
data |
A data frame to pivot. |
id_cols |
A set of columns that uniquely identifies each observation.
Defaults to all columns in |
names_from, values_from |
A pair of arguments describing which column
(or columns) to get the name of the output column ( If |
names_prefix |
String added to the start of every variable name. This is
particularly useful if |
names_sep |
If |
names_repair |
What happen if the output has invalid column names?
The default, |
values_fill |
Optionally, a named list specifying what each |
values_fn |
Optionally, a named list providing a function that will be
applied to the |
pivot_wider() is an updated approach to spread(), designed to be both
simpler to use and to handle more use cases. We recomend you use
pivot_wider() for new code; spread() isn't going away but is no longer
under active development.
pivot_wider_spec() to pivot "by hand" with a data frame that
defines a pivotting specification.
# See vignette("pivot") for examples and explanation
fish_encounters
fish_encounters %>%
pivot_wider(names_from = station, values_from = seen)
# Fill in missing values
fish_encounters %>%
pivot_wider(
names_from = station,
values_from = seen,
values_fill = list(seen = 0)
)
# Generate column names from multiple variables
us_rent_income %>%
pivot_wider(names_from = variable, values_from = c(estimate, moe))
# Can perform aggregation with values_fn
warpbreaks <- as_tibble(warpbreaks[c("wool", "tension", "breaks")])
warpbreaks
warpbreaks %>%
pivot_wider(
names_from = wool,
values_from = breaks,
values_fn = list(breaks = mean)
)