Мы можем написать функцию с именем round_x()
, которая охватывает mutate()
и имеет age
в качестве аргумента по умолчанию:
library(dplyr)
round_x <- function(.data, x = age) {
x <- enquo(x)
var_name <- paste0("round_", quo_name(x))
mutate(.data, !!var_name := round(!!x))
}
Если мы вызываем эту функцию без аргументов:
data %>% round_x()
# age round_age
#1 50.1 50
#2 60.5 60
Мы могли бы передать другие аргументы, если бы хотели:
data.frame(data, weight = c(180.5, 200.6)) %>% round_x(weight)
# age weight round_weight
#1 50.1 180.5 180
#2 60.5 200.6 201