Skip to content

workflows confuses an 'id' special for dplyr::id() #268

@topepo

Description

@topepo

See https://stackoverflow.com/questions/79163528/multistate-survival-models-with-censored-and-tidymodels

This might end up being a parsnip issue but we should start here.

library(tidyverse)
library(tidymodels)
library(censored)
#> Loading required package: survival

df <- tibble(
  sample_id = seq(1:1000),
  sex = sample(c("Male","Female"), 1000, replace = T),
  duration = rnorm(1000, mean = 75, sd = 7),
  outcome = sample(c("censor","Lost","Won"), 1000, replace = T)
  
) %>%
  mutate(
    outcome = factor(outcome)
  )

mod_df <- df %>%
  mutate(
    sale_surv = Surv(duration, outcome),
    .keep = "unused"
  )

set.seed(1988)

mod_split <- initial_split(mod_df)
mod_train <- training(mod_split)
mod_test <- testing(mod_split)

mod_rec <- recipe(sale_surv ~ sex, data = mod_train) # no `id` here 

mod_spec <- proportional_hazards() %>%
  set_mode("censored regression") %>%
  set_engine("survival") 

mod_wflow <- workflow() %>%
  add_recipe(mod_rec) %>%
  add_model(mod_spec, formula = sale_surv ~ sex + id(sample_id)) # add a formula here

mod_fit <- fit(mod_wflow, data = mod_train)
#> Error:
#> ! `id()` was deprecated in dplyr 0.5.0 and is now defunct.
#> ℹ Please use `vctrs::vec_group_id()` instead.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions