if (FALSE) {
con <- DBI::dbConnect(duckdb::duckdb())
mtcars_tbl <- dplyr::copy_to(con, mtcars, name = "tmp", overwrite = TRUE, temporary = TRUE)
# quantiles for a single column
mtcars_tbl %>%
dplyr::group_by(cyl) %>%
dplyr::mutate(mean = mean(mpg, na.rm = TRUE)) %>%
summariseQuantile2("mpg", probs = c(0, 0.2, 0.4, 0.6, 0.8, 1), nameSuffix = "quant") %>%
dplyr::collect()
#> cyl p0_quant p20_quant p40_quant p60_quant p80_quant p100_quant
#> 6 17.8 18.1 19.2 21 21 21.4
#> 8 10.4 13.3 15 15.5 17.3 19.2
#> 4 21.4 22.8 24.4 27.3 30.4 33.9
# multiple columns
mtcars_tbl %>%
dplyr::group_by(cyl) %>%
dplyr::mutate(mean = mean(mpg, na.rm = TRUE)) %>%
summariseQuantile2(c("mpg", "hp", "wt"), probs = c(0.2, 0.8), nameSuffix = "{x}_quant") %>%
dplyr::collect()
#> cyl p20_mpg_quant p80_mpg_quant p20_hp_quant p80_hp_quant p20_wt_quant p80_wt_quant
#> 4 22.8 30.4 65 97 1.84 2.78
#> 6 18.1 21 110 123 2.77 3.44
#> 8 13.3 17.3 175 245 3.44 5.25
DBI::dbDisconnect(con, shutdown = TRUE)
}
Run the code above in your browser using DataLab