df <- data.table(
a = 1:3,
b = 4:6,
z = c("a", "a", "b")
)
# Pass a single function
df %>%
summarize_across.(c(a, b), mean, na.rm = TRUE)
# Single function using purrr style interface
df %>%
summarize_across.(c(a, b), ~ mean(.x, na.rm = TRUE))
# Passing a list of functions (with .by)
df %>%
summarize_across.(c(a, b), list(mean, max), .by = z)
# Passing a named list of functions (with .by)
df %>%
summarize_across.(c(a, b),
list(avg = mean,
max = ~ max(.x)),
.by = z)
# Use the `.names` argument for more naming control
df %>%
summarize_across.(c(a, b),
list(avg = mean,
max = ~ max(.x)),
.by = z,
.names = "{.col}_test_{.fn}")
Run the code above in your browser using DataLab