Skip to content

When the user passes a formula to fit() and the underlying model function uses a formula, the call object produced by fit() may not be usable by other functions. For example, some arguments may still be quosures and the data portion of the call will not correspond to the original data.


repair_call(x, data)



A fitted parsnip model. An error will occur if the underlying model does not have a call element.


A data object that is relevant to the call. In most cases, this is the data frame that was given to parsnip for the model fit (i.e., the training set data). The name of this data object is inserted into the call.


A modified parsnip fitted model.


repair_call() call can adjust the model objects call to be usable by other functions and methods.


fitted_model <-
  linear_reg() %>%
  set_engine("lm", model = TRUE) %>%
  fit(mpg ~ ., data = mtcars)

# In this call, note that `data` is not `mtcars` and the `model = ~TRUE`
# indicates that the `model` argument is an `rlang` quosure.
#> stats::lm(formula = mpg ~ ., data = data, model = ~TRUE)

# All better:
repair_call(fitted_model, mtcars)$fit$call
#> stats::lm(formula = mpg ~ ., data = mtcars, model = TRUE)