факторы выравнивания при условии объединения с 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)