1## ----ex_setup, include=FALSE--------------------------------------------------
2knitr::opts_chunk$set(
3  message = FALSE,
4  digits = 3,
5  collapse = TRUE,
6  comment = "#>"
7  )
8options(digits = 3)
9library(recipes)
10
11## ----formula-roles------------------------------------------------------------
12library(recipes)
13
14recipe(Species ~ ., data = iris) %>% summary()
15
16recipe( ~ Species, data = iris) %>% summary()
17
18recipe(Sepal.Length + Sepal.Width ~ ., data = iris) %>% summary()
19
20## ----formula-update-----------------------------------------------------------
21library(modeldata)
22data(biomass)
23
24recipe(HHV ~ ., data = biomass) %>%
25  update_role(dataset, new_role = "dataset split variable") %>%
26  update_role(sample, new_role = "sample ID") %>%
27  summary()
28
29## ----formula-rm---------------------------------------------------------------
30recipe(HHV ~ ., data = biomass) %>%
31  remove_role(sample, old_role = "predictor") %>%
32  summary()
33
34## ----formula-rm-fail, error=TRUE----------------------------------------------
35recipe(HHV ~ ., data = biomass) %>%
36  update_role(sample, new_role = NA_character_)
37
38## ----formula-add--------------------------------------------------------------
39multi_role <- recipe(HHV ~ ., data = biomass) %>%
40  update_role(dataset, new_role = "dataset split variable") %>%
41  update_role(sample, new_role = "sample ID") %>%
42  # Roles below from https://wordcounter.net/random-word-generator
43  add_role(sample, new_role = "jellyfish")
44
45multi_role %>%
46  summary()
47
48## -----------------------------------------------------------------------------
49multi_role %>%
50  update_role(sample, new_role = "flounder", old_role = "jellyfish") %>%
51  summary()
52
53## -----------------------------------------------------------------------------
54multi_role %>%
55  add_role(HHV, new_role = "nocenter") %>%
56  step_center(all_predictors(), -has_role("nocenter")) %>%
57  prep(training = biomass, retain = TRUE) %>%
58  bake(new_data = NULL) %>%
59  head()
60
61## ----x-none-------------------------------------------------------------------
62recipe(biomass) %>%
63  summary()
64
65## ----x-none-updated-----------------------------------------------------------
66recipe(biomass) %>%
67  update_role(contains("gen"), new_role = "lunchroom") %>%
68  update_role(sample, HHV, new_role = "snail") %>%
69  summary()
70
71## ----dummy--------------------------------------------------------------------
72recipe( ~ ., data = iris) %>%
73  step_dummy(Species) %>%
74  prep() %>%
75  bake(new_data = NULL, all_predictors()) %>%
76  dplyr::select(starts_with("Species")) %>%
77  names()
78
79# or something else
80recipe( ~ ., data = iris) %>%
81  step_dummy(Species, role = "trousers") %>%
82  prep() %>%
83  bake(new_data = NULL, has_role("trousers")) %>%
84  names()
85
86