# NOT RUN {
if (utils::packageVersion("dplyr") < "0.8.0") {
rules_1 <- rules(mean, sd, .args = list(na.rm = TRUE))
rules_1_ref <- dplyr::funs('._.rule__1' = mean, '._.rule__2' = sd,
.args = list(na.rm = TRUE))
identical(rules_1, rules_1_ref)
rules_2 <- rules(mean, sd = sd, "var")
rules_2_ref <- dplyr::funs(
'._.rule__1' = mean,
'._.sd' = sd,
'._.rule__3' = "var"
)
identical(rules_2, rules_2_ref)
rules_3 <- rules(mean, .prefix = "a_a_")
rules_3_ref <- dplyr::funs('a_a_rule__1' = mean)
identical(rules_3, rules_3_ref)
}
if (utils::packageVersion("dplyr") >= "0.8.0") {
# `rules()` also accepts bare expression calls with `.` as input, which is
# not possible with advised `list()` approach of `dplyr`
dplyr::summarise_all(mtcars[, 1:2], rules(sd, "sd", sd(.), ~ sd(.)))
dplyr::summarise_all(mtcars[, 1:2], rules(sd, .prefix = "a_a_"))
# Use `...` in `summarise_all()` to supply extra arguments
dplyr::summarise_all(data.frame(x = c(1:2, NA)), rules(sd), na.rm = TRUE)
}
# }
Run the code above in your browser using DataLab