Fast Summarise
fsummarize is a much faster version of dplyr::summarise, when used together with the Fast Statistical Functions.
fsummarise(.data, ..., keep.group_vars = TRUE) smr(.data, ..., keep.group_vars = TRUE) # Shortcut
.data |
a (grouped) data frame or named list of columns. Grouped data can be created with |
... |
name-value pairs of summary functions. The name will be the name of the variable in the result. Functions when applied to a vector need to return a scalar. For fast performance and weighted aggregation use the Fast Statistical Functions. |
keep.group_vars |
logical. |
If .data is grouped by fgroup_by or dplyr::group_by, the result is a data frame of the same class and attributes with rows reduced to the number of groups. If .data is not grouped, the result is a data frame of the same class and attributes with 1 row.
Functions other than the Fast Statistical Functions cannot be passed weight vectors as fsummarize only splits the .data, not any arguments passed to functions. If you want to summarize data with a weighted function you created yourself, use data.table.
# Simple use
fsummarise(mtcars, mean_mpg = fmean(mpg),
sd_mpg = fsd(mpg))
# Using base functions (not a big difference without groups)
fsummarise(mtcars, mean_mpg = mean(mpg),
sd_mpg = sd(mpg))
# Grouped use
library(magrittr)
mtcars %>% fgroup_by(cyl) %>%
fsummarise(mean_mpg = fmean(mpg),
sd_mpg = fsd(mpg))
# This is still efficient but quite a bit slower on large data (many groups)
mtcars %>% fgroup_by(cyl) %>%
fsummarise(mean_mpg = mean(mpg),
sd_mpg = sd(mpg))
# Weighted aggregation
mtcars %>% fgroup_by(cyl) %>%
fsummarise(w_mean_mpg = fmean(mpg, wt),
w_sd_mpg = fsd(mpg, wt))
## Can also group with dplyr::group_by, but at a conversion cost, see ?GRP
library(dplyr)
mtcars %>% group_by(cyl) %>%
fsummarise(mean_mpg = fmean(mpg),
sd_mpg = fsd(mpg))
# Again less efficient...
mtcars %>% group_by(cyl) %>%
fsummarise(mean_mpg = mean(mpg),
sd_mpg = sd(mpg))Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.