Introduction to {mmetrics} package

This vignette shows you how to use {mmetrics} package.

Create Dummy Data

library(mmetrics)

First, we create dummy data for this example.

# Dummy data
df <- data.frame(
  gender = rep(c("M", "F"), 5),
  age = (1:10)*10,
  cost = c(51:60),
  impression = c(101:110),
  click = c(0:9)*3,
  conversion = c(0:9)
)

head(df)
#>   gender age cost impression click conversion
#> 1      M  10   51        101     0          0
#> 2      F  20   52        102     3          1
#> 3      M  30   53        103     6          2
#> 4      F  40   54        104     9          3
#> 5      M  50   55        105    12          4
#> 6      F  60   56        106    15          5

Define metrics

As a next step, we define metrics to evaluate using mmetrics::define.

# Example metrics
metrics <- mmetrics::define(
  cost = sum(cost),
  ctr  = sum(click)/sum(impression)
)

How to use mmetrics::add()

mmetrics::add() with sigle grouping key

Call mmetrics::add() with grouping key (here gender) then we will get new data.frame with defined metrics.

mmetrics::add(df, gender, metrics = metrics)
#> # A tibble: 2 x 3
#>   gender  cost   ctr
#>   <fct>  <int> <dbl>
#> 1 F        280 0.142
#> 2 M        275 0.114

mmetrics::add() with multiple grouping keys

We can also use multiple grouping keys.

mmetrics::add(df, gender, age, metrics = metrics)
#> # A tibble: 10 x 4
#>    gender   age  cost    ctr
#>    <fct>  <dbl> <int>  <dbl>
#>  1 F         20    52 0.0294
#>  2 F         40    54 0.0865
#>  3 F         60    56 0.142 
#>  4 F         80    58 0.194 
#>  5 F        100    60 0.245 
#>  6 M         10    51 0     
#>  7 M         30    53 0.0583
#>  8 M         50    55 0.114 
#>  9 M         70    57 0.168 
#> 10 M         90    59 0.220

mmetrics::add() without any grouping keys

If we do not specify any grouping keys, mmetrics::add() behave like dplyr::mutate() as a default option.

mmetrics::add(df, metrics = metrics)
#> # A tibble: 10 x 4
#>    gender   age  cost    ctr
#>    <fct>  <dbl> <int>  <dbl>
#>  1 F         20    52 0.0294
#>  2 F         40    54 0.0865
#>  3 F         60    56 0.142 
#>  4 F         80    58 0.194 
#>  5 F        100    60 0.245 
#>  6 M         10    51 0     
#>  7 M         30    53 0.0583
#>  8 M         50    55 0.114 
#>  9 M         70    57 0.168 
#> 10 M         90    59 0.220

If we want to summarize all data, change summarize argument to TRUE.

mmetrics::add(df, metrics = metrics, summarize = TRUE)
#> # A tibble: 1 x 2
#>    cost   ctr
#>   <int> <dbl>
#> 1   555 0.128