Rlang
Tidy dots features¶
my_cases <- rlang::quos(
Species == "setosa" ~ "S",
TRUE ~ "other"
)
out <- tiris %>%
mutate(new_lable = case_when(!!! my_cases))
curly-curly()
: abstracts quote-and-unquote into a single interpolation step¶
quote and unquote version
max_by <- function(data, var, by) {
data %>%
group_by(!!enquo(by)) %>%
summarise(maximum = max(!!enquo(var), na.rm = TRUE))
}
starwars %>% max_by(mass, by = gender)
curly-curly version
max_by <- function(data, var, by) {
data %>%
group_by({{ by }}) %>%
summarise(maximum = max({{ var }}, na.rm = TRUE))
}
starwars %>% max_by(var = height, by = gender)
env()
: Create a new environment¶
exec()
: Execute functions¶
r title = 'assign values with the definition operator :='
arg_name <- "na.rm"
arg_val <- TRUE
exec("mean", 1:10, !!arg_name := arg_val)