full_internal_make_wflw <- function(.model_tbl, .rec_obj){
# Tidyeval ----
model_tbl <- .model_tbl
rec_obj <- .rec_obj
model_tbl_class <- class(model_tbl)
# Checks ----
if (!inherits(model_tbl, "tidyaml_mod_spec_tbl")){
rlang::abort(
message = "'.model_tbl' must inherit a class of 'tidyaml_mod_spec_tbl",
use_cli_format = TRUE
)
}
# Manipulation
model_factor_tbl <- model_tbl |>
dplyr::mutate(.model_id = forcats::as_factor(.model_id))
#dplyr::mutate(rec_obj = list(rec_obj))
# Make a group split object list
models_list <- model_factor_tbl |>
dplyr::group_split(.model_id)
# Make the Workflow Object using purrr imap
wflw_list <- models_list |>
purrr::imap(
.f = function(obj, id){
# Pull the model column and then pluck the model
mod <- obj |> dplyr::pull(5) |> purrr::pluck(1)
# PUll the recipe column and then pluck the recipe
#rec_obj <- obj |> dplyr::pull(6) |> purrr::pluck(1)
# Switch Statement
# First get attributes of the model
mod_attr <- attributes(mod)$.tidyaml_mod_class
class(obj) <- c("tidyaml_mod_spec_tbl", class(obj))
# Switch on the class of the model
if (mod_attr == "gee_linear_reg"){
ret <- internal_make_wflw_gee_lin_reg(obj, rec_obj)
}
if (!mod_attr == "gee_linear_reg"){
ret <- internal_make_wflw(obj, rec_obj)
}
# Return Result
return(ret)
}
)
# Return
return(wflw_list[[1]])
}
Add function
full_internal_make_wflw()