translate() will translate a model specification into a code object that is specific to a particular engine (e.g. R package). It translates generic parameters to their counterparts.

translate(x, ...)

# S3 method for default
translate(x, engine = x\$engine, ...)

## Arguments

x A model specification. Not currently used. The computational engine for the model (see ?set_engine).

## Details

translate() produces a template call that lacks the specific argument values (such as data, etc). These are filled in once fit() is called with the specifics of the data for the model. The call may also include varying arguments if these are in the specification.

It does contain the resolved argument names that are specific to the model fitting function/engine.

This function can be useful when you need to understand how parsnip goes from a generic model specific to a model fitting function.

Note: this function is used internally and users should only use it to understand what the underlying syntax would be. It should not be used to modify the model specification.

## Examples

lm_spec <- linear_reg(penalty = 0.01)

# penalty is tranlsated to lambda
translate(lm_spec, engine = "glmnet")
#> Linear Regression Model Specification (regression)
#>
#> Main Arguments:
#>   penalty = 0.01
#>
#> Computational engine: glmnet
#>
#> Model fit template:
#> glmnet::glmnet(x = missing_arg(), y = missing_arg(), weights = missing_arg(),
#>     family = "gaussian")
# penalty not applicable for this model.
translate(lm_spec, engine = "lm")
#> Linear Regression Model Specification (regression)
#>
#> Main Arguments:
#>   penalty = 0.01
#>
#> Computational engine: lm
#>
#> Model fit template:
#> stats::lm(formula = missing_arg(), data = missing_arg(), weights = missing_arg())
# penalty is tranlsated to reg_param
translate(lm_spec, engine = "spark")
#> Linear Regression Model Specification (regression)
#>
#> Main Arguments:
#>   penalty = 0.01
#>
#> Computational engine: spark
#>
#> Model fit template:
#> sparklyr::ml_linear_regression(x = missing_arg(), formula = missing_arg(),
#>     weight_col = missing_arg(), reg_param = 0.01)
# with a placeholder for an unknown argument value:
translate(linear_reg(penalty = varying(), mixture = varying()), engine = "glmnet")
#> Linear Regression Model Specification (regression)
#>
#> Main Arguments:
#>   penalty = varying()
#>   mixture = varying()
#>
#> Computational engine: glmnet
#>
#> Model fit template:
#> glmnet::glmnet(x = missing_arg(), y = missing_arg(), weights = missing_arg(),
#>     alpha = varying(), family = "gaussian")