Skip to contents

These functions help construct calls to various types of models.

Usage

construct_model(data, ...)

# S3 method for data.frame
construct_model(
  data,
  formula,
  method,
  method.args = list(),
  package = "base",
  env = caller_env(),
  ...
)

# S3 method for survey.design
construct_model(
  data,
  formula,
  method,
  method.args = list(),
  package = "survey",
  env = caller_env(),
  ...
)

reformulate2(
  termlabels,
  response = NULL,
  intercept = TRUE,
  pattern_term = "[ \n\r]",
  pattern_response = "[ \n\r]",
  env = parent.frame()
)

bt(x, pattern = "[ \n\r]")

bt_strip(x)

Arguments

data
  • construct_model.data.frame() (data.frame) a data frame

  • construct_model.survey.design() (survey.design) a survey design object

...

These dots are for future extensions and must be empty.

formula

(formula)
a formula

method

(string)
string of function naming the function to be called, e.g. "glm". If function belongs to a library that is not attached, the package name must be specified in the package argument.

method.args

(named list)
named list of arguments that will be passed to method.

Note that this list may contain non-standard evaluation components. If you are wrapping this function in other functions, the argument must be passed in a way that does not evaluate the list, e.g. using rlang's embrace operator {{ . }}.

package

(string)
string of package name that will be temporarily loaded when function specified in method is executed.

env

The environment in which to evaluate expr. This environment is not applicable for quosures because they have their own environments.

termlabels

character vector giving the right-hand side of a model formula. Cannot be zero-length.

response

character string, symbol or call giving the left-hand side of a model formula, or NULL.

intercept

logical: should the formula have an intercept?

pattern_term, pattern_response

passed to bt(pattern) for arguments stats::reformulate(termlabels, response).

x

(character)
character vector, typically of variable names

pattern

(string)
regular expression string. If the regex matches, backticks are added to the string. When NULL, backticks are not added.

Value

depends on the calling function

Details

  • construct_model(): Builds models of the form method(data = data, formula = formula, method.args!!!). If the package argument is specified, that package is temporarily attached when the model is evaluated.

  • reformulate2(): This is a copy of reformulate() except that variable names that contain a space are wrapped in backticks.

  • bt(): Adds backticks to a character vector.

  • bt_strip(): Removes backticks from a string if it begins and ends with a backtick.

Examples

construct_model(
  data = mtcars,
  formula = am ~ mpg + (1 | vs),
  method = "glmer",
  method.args = list(family = binomial),
  package = "lme4"
) |>
  broom.mixed::tidy()
#> # A tibble: 3 × 7
#>   effect   group term            estimate std.error statistic p.value
#>   <chr>    <chr> <chr>              <dbl>     <dbl>     <dbl>   <dbl>
#> 1 fixed    NA    (Intercept)       -8.70      4.12      -2.11  0.0347
#> 2 fixed    NA    mpg                0.409     0.199      2.05  0.0403
#> 3 ran_pars vs    sd__(Intercept)    0.790    NA         NA    NA     

construct_model(
  data = mtcars |> dplyr::rename(`M P G` = mpg),
  formula = reformulate2(c("M P G", "cyl"), response = "hp"),
  method = "lm"
) |>
  ard_regression() |>
  dplyr::filter(stat_name %in% c("term", "estimate", "p.value"))
#> {cards} data frame: 6 x 6
#>   variable   context stat_name stat_label    stat fmt_fn
#> 1    M P G regressi…      term       term `M P G`   NULL
#> 2    M P G regressi…  estimate  Coeffici…  -2.775      1
#> 3    M P G regressi…   p.value    p-value   0.213      1
#> 4      cyl regressi…      term       term     cyl   NULL
#> 5      cyl regressi…  estimate  Coeffici…  23.979      1
#> 6      cyl regressi…   p.value    p-value   0.003      1