The analysis function estimate_proportion_diff() creates a layout element to estimate the difference in proportion
of responders within a studied population. The primary analysis variable, vars, is a logical variable indicating
whether a response has occurred for each record. See the method parameter for options of methods to use when
constructing the confidence interval of the proportion difference. A stratification variable can be supplied via the
strata element of the variables argument.
Usage
estimate_proportion_diff(
  lyt,
  vars,
  variables = list(strata = NULL),
  conf_level = 0.95,
  method = c("waldcc", "wald", "cmh", "ha", "newcombe", "newcombecc", "strat_newcombe",
    "strat_newcombecc"),
  weights_method = "cmh",
  na_str = default_na_str(),
  nested = TRUE,
  ...,
  var_labels = vars,
  show_labels = "hidden",
  table_names = vars,
  .stats = NULL,
  .formats = NULL,
  .labels = NULL,
  .indent_mods = NULL
)
s_proportion_diff(
  df,
  .var,
  .ref_group,
  .in_ref_col,
  variables = list(strata = NULL),
  conf_level = 0.95,
  method = c("waldcc", "wald", "cmh", "ha", "newcombe", "newcombecc", "strat_newcombe",
    "strat_newcombecc"),
  weights_method = "cmh"
)
a_proportion_diff(
  df,
  .var,
  .ref_group,
  .in_ref_col,
  variables = list(strata = NULL),
  conf_level = 0.95,
  method = c("waldcc", "wald", "cmh", "ha", "newcombe", "newcombecc", "strat_newcombe",
    "strat_newcombecc"),
  weights_method = "cmh"
)Arguments
- lyt
- ( - PreDataTableLayouts)
 layout that analyses will be added to.
- vars
- ( - character)
 variable names for the primary analysis variable to be iterated over.
- variables
- (named - listof- string)
 list of additional analysis variables.
- conf_level
- ( - proportion)
 confidence level of the interval.
- method
- ( - string)
 the method used for the confidence interval estimation.
- weights_method
- ( - string)
 weights method. Can be either- "cmh"or- "heuristic"and directs the way weights are estimated.
- na_str
- ( - string)
 string used to replace all- NAor empty values in the output.
- nested
- ( - flag)
 whether this layout instruction should be applied within the existing layout structure _if possible (- TRUE, the default) or as a new top-level element (- FALSE). Ignored if it would nest a split. underneath analyses, which is not allowed.
- ...
- additional arguments for the lower level functions. 
- var_labels
- ( - character)
 variable labels.
- show_labels
- ( - string)
 label visibility: one of "default", "visible" and "hidden".
- table_names
- ( - character)
 this can be customized in the case that the same- varsare analyzed multiple times, to avoid warnings from- rtables.
- .stats
- ( - character)
 statistics to select for the table. Run- get_stats("estimate_proportion_diff")to see available statistics for this function.
- .formats
- (named - characteror- list)
 formats for the statistics. See Details in- analyze_varsfor more information on the- "auto"setting.
- .labels
- (named - character)
 labels for the statistics (without indent).
- .indent_mods
- (named - integer)
 indent modifiers for the labels. Defaults to 0, which corresponds to the unmodified default behavior. Can be negative.
- df
- ( - data.frame)
 data set containing all analysis variables.
- .var
- ( - string)
 single variable name that is passed by- rtableswhen requested by a statistics function.
- .ref_group
- ( - data.frameor- vector)
 the data corresponding to the reference group.
- .in_ref_col
- ( - flag)- TRUEwhen working with the reference level,- FALSEotherwise.
Value
- estimate_proportion_diff()returns a layout object suitable for passing to further layouting functions, or to- rtables::build_table(). Adding this function to an- rtablelayout will add formatted rows containing the statistics from- s_proportion_diff()to the table layout.
- s_proportion_diff()returns a named list of elements- diffand- diff_ci.
- a_proportion_diff()returns the corresponding list with formatted- rtables::CellValue().
Functions
- estimate_proportion_diff(): Layout-creating function which can take statistics function arguments and additional format arguments. This function is a wrapper for- rtables::analyze().
- s_proportion_diff(): Statistics function estimating the difference in terms of responder proportion.
- a_proportion_diff(): Formatted analysis function which is used as- afunin- estimate_proportion_diff().
Note
When performing an unstratified analysis, methods "cmh", "strat_newcombe", and "strat_newcombecc" are
not permitted.
Examples
## "Mid" case: 4/4 respond in group A, 1/2 respond in group B.
nex <- 100 # Number of example rows
dta <- data.frame(
  "rsp" = sample(c(TRUE, FALSE), nex, TRUE),
  "grp" = sample(c("A", "B"), nex, TRUE),
  "f1" = sample(c("a1", "a2"), nex, TRUE),
  "f2" = sample(c("x", "y", "z"), nex, TRUE),
  stringsAsFactors = TRUE
)
l <- basic_table() %>%
  split_cols_by(var = "grp", ref_group = "B") %>%
  estimate_proportion_diff(
    vars = "rsp",
    conf_level = 0.90,
    method = "ha"
  )
build_table(l, df = dta)
#>                                        A         B
#> ——————————————————————————————————————————————————
#> Difference in Response rate (%)       12.0        
#>   90% CI (Anderson-Hauck)         (-5.4, 29.4)    
s_proportion_diff(
  df = subset(dta, grp == "A"),
  .var = "rsp",
  .ref_group = subset(dta, grp == "B"),
  .in_ref_col = FALSE,
  conf_level = 0.90,
  method = "ha"
)
#> $diff
#> [1] 12
#> attr(,"label")
#> [1] "Difference in Response rate (%)"
#> 
#> $diff_ci
#> [1] -5.374519 29.374519
#> attr(,"label")
#> [1] "90% CI (Anderson-Hauck)"
#> 
# CMH example with strata
s_proportion_diff(
  df = subset(dta, grp == "A"),
  .var = "rsp",
  .ref_group = subset(dta, grp == "B"),
  .in_ref_col = FALSE,
  variables = list(strata = c("f1", "f2")),
  conf_level = 0.90,
  method = "cmh"
)
#> $diff
#> [1] 12.05847
#> attr(,"label")
#> [1] "Difference in Response rate (%)"
#> 
#> $diff_ci
#> [1] -2.67057 26.78750
#> attr(,"label")
#> [1] "90% CI (CMH, without correction)"
#> 
a_proportion_diff(
  df = subset(dta, grp == "A"),
  .var = "rsp",
  .ref_group = subset(dta, grp == "B"),
  .in_ref_col = FALSE,
  conf_level = 0.90,
  method = "ha"
)
#> RowsVerticalSection (in_rows) object print method:
#> ----------------------------
#>   row_name formatted_cell indent_mod                       row_label
#> 1     diff           12.0          0 Difference in Response rate (%)
#> 2  diff_ci   (-5.4, 29.4)          1         90% CI (Anderson-Hauck)
