mutate {dplyr} | R Documentation |
mutate()
adds new variables and preserves existing;
transmute()
drops existing variables.
mutate(.data, ...) transmute(.data, ...)
.data |
A tbl. All main verbs are S3 generics and provide methods
for |
... |
Name-value pairs of expressions. Use These arguments are automatically quoted and
evaluated in the context of the data
frame. They support unquoting and
splicing. See |
An object of the same class as .data
.
The three scoped variants of mutate()
(mutate_all()
,
mutate_if()
and mutate_at()
) and the three variants of
transmute()
(transmute_all()
, transmute_if()
,
transmute_at()
) make it easy to apply a transformation to a
selection of variables.
When applied to a data frame, row names are silently dropped. To preserve,
convert to an explicit variable with tibble::rownames_to_column()
.
Other single table verbs: arrange
,
filter
, select
,
slice
, summarise
# Newly created variables are available immediately mtcars %>% as_tibble() %>% mutate( cyl2 = cyl * 2, cyl4 = cyl2 * 2 ) # You can also use mutate() to remove variables and # modify existing variables mtcars %>% as_tibble() %>% mutate( mpg = NULL, disp = disp * 0.0163871 # convert to litres ) # window functions are useful for grouped mutates mtcars %>% group_by(cyl) %>% mutate(rank = min_rank(desc(mpg))) # see `vignette("window-functions")` for more details # You can drop variables by setting them to NULL mtcars %>% mutate(cyl = NULL) # mutate() vs transmute -------------------------- # mutate() keeps all existing variables mtcars %>% mutate(displ_l = disp / 61.0237) # transmute keeps only the variables you create mtcars %>% transmute(displ_l = disp / 61.0237) # mutate() supports quasiquotation. You can unquote quosures, which # can refer to both contextual variables and variable names: var <- 100 as_tibble(mtcars) %>% mutate(cyl = !!quo(cyl * var))