Allows you to mutate "by row". this is most useful when a vectorized function doesn't exist.
mutate_rowwise(
.df,
...,
.keep = c("all", "used", "unused", "none"),
.before = NULL,
.after = NULL
)
A data.table or data.frame
Columns to add/modify
experimental:
This is an experimental argument that allows you to control which columns
from .df
are retained in the output:
"all"
, the default, retains all variables.
"used"
keeps any variables used to make new variables; it's useful
for checking your work as it displays inputs and outputs side-by-side.
"unused"
keeps only existing variables not used to make new
variables.
"none"
, only keeps grouping keys (like transmute()
).
Optionally indicate where new columns should be placed. Defaults to the right side of the data frame.
df <- data.table(x = 1:3, y = 1:3 * 2, z = 1:3 * 3)
# Compute the mean of x, y, z in each row
df %>%
mutate_rowwise(row_mean = mean(c(x, y, z)))
#> # A tidytable: 3 × 4
#> x y z row_mean
#> <int> <dbl> <dbl> <dbl>
#> 1 1 2 3 2
#> 2 2 4 6 4
#> 3 3 6 9 6
# Use c_across() to more easily select many variables
df %>%
mutate_rowwise(row_mean = mean(c_across(x:z)))
#> # A tidytable: 3 × 4
#> x y z row_mean
#> <int> <dbl> <dbl> <dbl>
#> 1 1 2 3 2
#> 2 2 4 6 4
#> 3 3 6 9 6