факторы выравнивания при условии объединения с recipes::step_other()

Я хочу использовать категорию "другое" в качестве справочной, когда объединение происходит с step_other. Я могу сделать это сstep_mutate но только когда step_otherприводит к объединению. Есть ли способ установить условный опорный уровеньstep_other что приводит к объединению?

library(recipes)
#> Loading required package: dplyr
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union
#> 
#> Attaching package: 'recipes'
#> The following object is masked from 'package:stats':
#> 
#>     step
data(okc)

# No relevel
recipe(age ~ diet, data = na.omit(okc)) %>% 
  step_other(diet, threshold = 0.01, other = "infrequent value") %>% 
  step_dummy(diet) %>% 
  prep() %>% 
  juice() %>% 
  names() %>% 
  .[grepl("infrequent", x = .)]
#> [1] "diet_infrequent.value"

# With relevel after pooling 
recipe(age ~ diet, data = na.omit(okc)) %>% 
  step_other(diet, threshold = 0.01, other = "infrequent value") %>% 
  step_mutate(diet = relevel(diet, ref = "infrequent value")) %>%
  step_dummy(diet) %>% 
  prep() %>% 
  juice() %>% 
  names() %>% 
  .[grepl("infrequent", x = .)]
#> character(0)

# With relevel and no pooling returns error
recipe(age ~ diet, data = na.omit(okc)) %>% 
  step_other(diet, threshold = 0.0001, other = "infrequent value") %>% 
  step_mutate(diet = relevel(diet, ref = "infrequent value")) %>%
  step_dummy(diet) %>% 
  prep() %>% 
  juice() %>% 
  names() %>% 
  .[grepl("infrequent", x = .)]
#> Error in relevel.factor(diet, ref = "infrequent value"): 'ref' must be an existing level

Создано 26.12.2019 пакетом REPEX (v0.3.0)

0 ответов

Другие вопросы по тегам