Skip to contents

Add commonly used metrics to an expstudy(). This typically would be after grouping by variables of interest, but doesn't have to be. The following metrics are available by default and use the expstudy's metric variables (actuals, expecteds, andexposures).

  • 'act2expec': actuals to expecteds (i.e., A/E ratios)

  • 'act2expos': actuals to exposures (i.e., average actually observed)

  • 'expec2expos': expecteds to exposures (i.e., average expected)

You can also create custom metrics to add by providing (optionally named) metric formulae.

Usage

add_metrics(
  expstudy,
  ...,
  .metrics = c("act2expec", "act2expos", "expec2expos"),
  .metric_nms = list(act2expec = "ACTUAL_TO_EXPECTED", act2expos = "ACTUAL_TO_EXPOSED",
    expec2expos = "EXPECTED_TO_EXPOSED")
)

Arguments

expstudy

an expstudy()

...

additional metrics to add. Can be name-value pairs or simply the metric's formula.

.metrics

default methods to add; if omitted, all metrics listed will be added

.metric_nms

pairlist of .metric names; can be character vector for expstudy object with multiple columns per .metrics argument

Value

An expstudy object with added metrics. See expstudy() for additional detail on expstudy objects.

Examples

  es <- expstudy(
    data = mortexp,
    actuals = ACTUAL_DEATHS,
    expecteds = EXPECTED_DEATHS,
    exposures =  EXPOSURE,
    variances = VARIANCE_DEATHS
  )

  # If no arguments are provided, all default metrics will be generated. This
  # mostly makes sense for already aggregated expstudy objects, but can be
  # used with unaggregated objects as well.
   es %>%
     aggregate(ATTAINED_AGE) %>%
     add_metrics
#> Source: local data table [83 x 8]
#> Call:   `_DT4`[, .(ACTUAL_DEATHS = sum(ACTUAL_DEATHS), EXPECTED_DEATHS = sum(EXPECTED_DEATHS), 
#>     EXPOSURE = sum(EXPOSURE), VARIANCE_DEATHS = sum(VARIANCE_DEATHS)), 
#>     keyby = .(ATTAINED_AGE)][, `:=`(ACTUAL_TO_EXPECTED = ACTUAL_DEATHS/EXPECTED_DEATHS, 
#>     ACTUAL_TO_EXPOSED = ACTUAL_DEATHS/EXPOSURE, EXPECTED_TO_EXPOSED = EXPECTED_DEATHS/EXPOSURE)]
#> 
#>   ATTAINED_AGE ACTUAL_DEATHS EXPECTED_DEATHS EXPOSURE VARIANCE_DEATHS
#>          <dbl>         <dbl>           <dbl>    <dbl>           <dbl>
#> 1           19             0           0.214     21.7           0.214
#> 2           20             0           0.565     56.5           0.565
#> 3           21             0           0.662     65.5           0.661
#> 4           22             0           0.713     69.9           0.712
#> 5           23             0           0.828     80.3           0.827
#> 6           24             0           0.884     84.9           0.884
#> # ℹ 77 more rows
#> # ℹ 3 more variables: ACTUAL_TO_EXPECTED <dbl>, ACTUAL_TO_EXPOSED <dbl>,
#> #   EXPECTED_TO_EXPOSED <dbl>
#> 
#> # Use as.data.table()/as.data.frame()/as_tibble() to access results

   es %>%
     aggregate(
       UNDERWRITING_CLASS,
       GENDER,
       SMOKING_STATUS
     ) %>%
     add_metrics
#> Source: local data table [12 x 10]
#> Call:   `_DT4`[, .(ACTUAL_DEATHS = sum(ACTUAL_DEATHS), EXPECTED_DEATHS = sum(EXPECTED_DEATHS), 
#>     EXPOSURE = sum(EXPOSURE), VARIANCE_DEATHS = sum(VARIANCE_DEATHS)), 
#>     keyby = .(UNDERWRITING_CLASS, GENDER, SMOKING_STATUS)][, 
#>     `:=`(ACTUAL_TO_EXPECTED = ACTUAL_DEATHS/EXPECTED_DEATHS, 
#>         ACTUAL_TO_EXPOSED = ACTUAL_DEATHS/EXPOSURE, EXPECTED_TO_EXPOSED = EXPECTED_DEATHS/EXPOSURE)]
#> 
#>   UNDERWRITING_CLASS GENDER SMOKING_STATUS ACTUAL_DEATHS EXPECTED_DEATHS
#>   <fct>              <fct>  <fct>                  <dbl>           <dbl>
#> 1 PREFERRED          FEMALE NON-SMOKER                 9            7.74
#> 2 PREFERRED          FEMALE SMOKER                     3            2.86
#> 3 PREFERRED          MALE   NON-SMOKER                17           10.7 
#> 4 PREFERRED          MALE   SMOKER                     7            4.48
#> 5 SELECT             FEMALE NON-SMOKER                22           20.7 
#> 6 SELECT             FEMALE SMOKER                     8            7.68
#> # ℹ 6 more rows
#> # ℹ 5 more variables: EXPOSURE <dbl>, VARIANCE_DEATHS <dbl>,
#> #   ACTUAL_TO_EXPECTED <dbl>, ACTUAL_TO_EXPOSED <dbl>,
#> #   EXPECTED_TO_EXPOSED <dbl>
#> 
#> # Use as.data.table()/as.data.frame()/as_tibble() to access results