library(testthat)
library(recipes)
# results based on second example at
# https://github.com/tidymodels/textrecipes/issues/17#issue-382503618
tokenize_old <-
tibble::tribble(
~variable, ~type, ~role, ~source,
"essay0", "nominal", "predictor", "original",
"essay0", "nominal", "textual", "original",
"essay1", "nominal", "predictor", "original",
"essay1", "nominal", "textual", "original",
"essay2", "nominal", "predictor", "original",
"essay2", "nominal", "textual", "original",
"essay3", "nominal", "predictor", "original",
"essay3", "nominal", "textual", "original",
"essay4", "nominal", "predictor", "original",
"essay4", "nominal", "textual", "original",
"essay5", "nominal", "predictor", "original",
"essay5", "nominal", "textual", "original",
"essay6", "nominal", "predictor", "original",
"essay6", "nominal", "textual", "original",
"essay7", "nominal", "predictor", "original",
"essay7", "nominal", "textual", "original",
"essay8", "nominal", "predictor", "original",
"essay8", "nominal", "textual", "original",
"essay9", "nominal", "predictor", "original",
"essay9", "nominal", "textual", "original"
)
tokenize_new <-
tibble::tribble(
~variable, ~type,
"essay0", "list",
"essay1", "list",
"essay2", "list",
"essay3", "list",
"essay4", "list",
"essay5", "list",
"essay6", "list",
"essay7", "list",
"essay8", "list",
"essay9", "list"
)
tokenize_res <-
tibble::tribble(
~variable, ~type, ~role, ~source,
"essay0", "list", "predictor", "original",
"essay0", "list", "textual", "original",
"essay1", "list", "predictor", "original",
"essay1", "list", "textual", "original",
"essay2", "list", "predictor", "original",
"essay2", "list", "textual", "original",
"essay3", "list", "predictor", "original",
"essay3", "list", "textual", "original",
"essay4", "list", "predictor", "original",
"essay4", "list", "textual", "original",
"essay5", "list", "predictor", "original",
"essay5", "list", "textual", "original",
"essay6", "list", "predictor", "original",
"essay6", "list", "textual", "original",
"essay7", "list", "predictor", "original",
"essay7", "list", "textual", "original",
"essay8", "list", "predictor", "original",
"essay8", "list", "textual", "original",
"essay9", "list", "predictor", "original",
"essay9", "list", "textual", "original"
)
untokenize_old <-
tibble::tribble(
~variable, ~type, ~role, ~source,
"essay0", "nominal", "predictor", "original",
"essay0", "nominal", "textual", "original",
"essay1", "nominal", "predictor", "original",
"essay1", "nominal", "textual", "original",
"essay2", "nominal", "predictor", "original",
"essay2", "nominal", "textual", "original",
"essay3", "nominal", "predictor", "original",
"essay3", "nominal", "textual", "original",
"essay4", "nominal", "predictor", "original",
"essay4", "nominal", "textual", "original",
"essay5", "nominal", "predictor", "original",
"essay5", "nominal", "textual", "original",
"essay6", "nominal", "predictor", "original",
"essay6", "nominal", "textual", "original",
"essay7", "nominal", "predictor", "original",
"essay7", "nominal", "textual", "original",
"essay8", "nominal", "predictor", "original",
"essay8", "nominal", "textual", "original",
"essay9", "nominal", "predictor", "original",
"essay9", "nominal", "textual", "original"
)
untokenize_new <-
tibble::tribble(
~variable, ~type,
"essay0", "list",
"essay1", "list",
"essay2", "list",
"essay3", "list",
"essay4", "list",
"essay5", "list",
"essay6", "list",
"essay7", "list",
"essay8", "list",
"essay9", "list"
)
untokenize_res <-
tibble::tribble(
~variable, ~type, ~role, ~source,
"essay0", "list", "predictor", "original",
"essay0", "list", "textual", "original",
"essay1", "list", "predictor", "original",
"essay1", "list", "textual", "original",
"essay2", "list", "predictor", "original",
"essay2", "list", "textual", "original",
"essay3", "list", "predictor", "original",
"essay3", "list", "textual", "original",
"essay4", "list", "predictor", "original",
"essay4", "list", "textual", "original",
"essay5", "list", "predictor", "original",
"essay5", "list", "textual", "original",
"essay6", "list", "predictor", "original",
"essay6", "list", "textual", "original",
"essay7", "list", "predictor", "original",
"essay7", "list", "textual", "original",
"essay8", "list", "predictor", "original",
"essay8", "list", "textual", "original",
"essay9", "list", "predictor", "original",
"essay9", "list", "textual", "original"
)
test_that("issue #", {
expect_equal(
recipes:::merge_term_info(.old = tokenize_old, .new = tokenize_new),
tokenize_res
)
expect_equal(
recipes:::merge_term_info(.old = untokenize_old, .new = untokenize_new),
untokenize_res
)
})
# tests based on the results of this code before the update:
skip_if_not_installed("modeldata")
data(credit_data, package = "modeldata")
#
# recipe(Status ~ Seniority + Job + Price + Age, data = credit_data) %>%
# step_dummy(Job) %>%
# step_poly(Price) %>%
# step_rm(Age) %>%
# prep(credit_data)
dummy_old <-
tibble::tribble(
~variable, ~type, ~role, ~source,
"Seniority", "numeric", "predictor", "original",
"Job", "nominal", "predictor", "original",
"Price", "numeric", "predictor", "original",
"Age", "numeric", "predictor", "original",
"Status", "nominal", "outcome", "original"
)
dummy_new <-
tibble::tribble(
~variable, ~type,
"Seniority", "numeric",
"Price", "numeric",
"Age", "numeric",
"Status", "nominal",
"Job_freelance", "numeric",
"Job_others", "numeric",
"Job_partime", "numeric"
)
dummy_res <-
tibble::tribble(
~variable, ~type, ~role, ~source,
"Seniority", "numeric", "predictor", "original",
"Price", "numeric", "predictor", "original",
"Age", "numeric", "predictor", "original",
"Status", "nominal", "outcome", "original",
"Job_freelance", "numeric", NA, NA,
"Job_others", "numeric", NA, NA,
"Job_partime", "numeric", NA, NA
)
# recipes:::merge_term_info(.new = dummy_new, .old = dummy_old)
poly_old <-
tibble::tribble(
~variable, ~type, ~role, ~source,
"Seniority", "numeric", "predictor", "original",
"Price", "numeric", "predictor", "original",
"Age", "numeric", "predictor", "original",
"Status", "nominal", "outcome", "original",
"Job_freelance", "numeric", "predictor", "derived",
"Job_others", "numeric", "predictor", "derived",
"Job_partime", "numeric", "predictor", "derived"
)
poly_new <-
tibble::tribble(
~variable, ~type,
"Seniority", "numeric",
"Age", "numeric",
"Status", "nominal",
"Job_freelance", "numeric",
"Job_others", "numeric",
"Job_partime", "numeric",
"Price_poly_1", "numeric",
"Price_poly_2", "numeric"
)
poly_res <-
tibble::tribble(
~variable, ~type, ~role, ~source,
"Seniority", "numeric", "predictor", "original",
"Age", "numeric", "predictor", "original",
"Status", "nominal", "outcome", "original",
"Job_freelance", "numeric", "predictor", "derived",
"Job_others", "numeric", "predictor", "derived",
"Job_partime", "numeric", "predictor", "derived",
"Price_poly_1", "numeric", NA, NA,
"Price_poly_2", "numeric", NA, NA
)
rm_old <-
tibble::tribble(
~variable, ~type, ~role, ~source,
"Seniority", "numeric", "predictor", "original",
"Age", "numeric", "predictor", "original",
"Status", "nominal", "outcome", "original",
"Job_freelance", "numeric", "predictor", "derived",
"Job_others", "numeric", "predictor", "derived",
"Job_partime", "numeric", "predictor", "derived",
"Price_poly_1", "numeric", "predictor", "derived",
"Price_poly_2", "numeric", "predictor", "derived"
)
rm_new <-
tibble::tribble(
~variable, ~type,
"Seniority", "numeric",
"Status", "nominal",
"Job_freelance", "numeric",
"Job_others", "numeric",
"Job_partime", "numeric",
"Price_poly_1", "numeric",
"Price_poly_2", "numeric"
)
rm_res <-
tibble::tribble(
~variable, ~type, ~role, ~source,
"Seniority", "numeric", "predictor", "original",
"Status", "nominal", "outcome", "original",
"Job_freelance", "numeric", "predictor", "derived",
"Job_others", "numeric", "predictor", "derived",
"Job_partime", "numeric", "predictor", "derived",
"Price_poly_1", "numeric", "predictor", "derived",
"Price_poly_2", "numeric", "predictor", "derived"
)
test_that("typical use cases", {
expect_equal(
recipes:::merge_term_info(.old = dummy_old, .new = dummy_new),
dummy_res
)
expect_equal(
recipes:::merge_term_info(.old = poly_old, .new = poly_new),
poly_res
)
expect_equal(
recipes:::merge_term_info(.old = rm_old, .new = rm_new),
rm_res
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.