title: Tidymodels tune_grid: "Can't subset columns that don't exist" when not using formula
body: <p>I've put together a data preprocessing recipe for the recent coffee dataset featured on TidyTuesday. My intention is to generate a workflow, and then from there tune a hyperparameter. I'm specifically interesting in manually declaring predictors and outcomes through the various <code>update_role()</code> functions, rather than using a formula, since I have some great plans for this style of variable selection (it's a really great idea!).</p>
  <p>The example below produces a recipe that works just fine with <code>prep</code> and <code>bake(coffee_test)</code>. It even works if I deselect the outcome column, eg. <code>coffee_recipe %&gt;% bake(select(coffee_test, -cupper_points))</code>. However, when I run the workflow through <code>tune_grid</code> I get the errors as shown. It looks like <code>tune_grid</code> can't find the variables that don't have the &quot;predictor&quot; role, even though <code>bake</code> does just fine.</p>
  <p>Now, if I instead do things the normal way with a formula and <code>step_rm</code> the variables I don't care about, then things mostly work --- I get a few warnings for rows with missing <code>country_of_origin</code> values, which I find strange since I should be imputing those. It's entirely possible I've misunderstood the purpose of roles and how to use them.</p>
  <pre class="lang-r prettyprint-override"><code>library(tidyverse)
  library(tidymodels)
  #&gt; ── Attaching packages ───────────────────────────────────────────────────── tidymodels 0.1.1 ──
  #&gt; ✓ broom     0.7.0      ✓ recipes   0.1.13
  #&gt; ✓ dials     0.0.8      ✓ rsample   0.0.7 
  #&gt; ✓ infer     0.5.3      ✓ tune      0.1.1 
  #&gt; ✓ modeldata 0.0.2      ✓ workflows 0.1.2 
  #&gt; ✓ parsnip   0.1.2      ✓ yardstick 0.0.7
  #&gt; ── Conflicts ──────────────────────────────────────────────────────── tidymodels_conflicts() ──
  #&gt; x scales::discard() masks purrr::discard()
  #&gt; x dplyr::filter()   masks stats::filter()
  #&gt; x recipes::fixed()  masks stringr::fixed()
  #&gt; x dplyr::lag()      masks stats::lag()
  #&gt; x yardstick::spec() masks readr::spec()
  #&gt; x recipes::step()   masks stats::step()
  
  set.seed(12345)
  
  coffee &lt;- tidytuesdayR::tt_load(2020, week = 28)$coffee_ratings
  #&gt; --- Compiling #TidyTuesday Information for 2020-07-07 ----
  #&gt; --- There is 1 file available ---
  #&gt; --- Starting Download ---
  #&gt; 
  #&gt;  Downloading file 1 of 1: `coffee_ratings.csv`
  #&gt; --- Download complete ---
  colnames(coffee)
  #&gt;  [1] &quot;total_cup_points&quot;      &quot;species&quot;               &quot;owner&quot;                
  #&gt;  [4] &quot;country_of_origin&quot;     &quot;farm_name&quot;             &quot;lot_number&quot;           
  #&gt;  [7] &quot;mill&quot;                  &quot;ico_number&quot;            &quot;company&quot;              
  #&gt; [10] &quot;altitude&quot;              &quot;region&quot;                &quot;producer&quot;             
  #&gt; [13] &quot;number_of_bags&quot;        &quot;bag_weight&quot;            &quot;in_country_partner&quot;   
  #&gt; [16] &quot;harvest_year&quot;          &quot;grading_date&quot;          &quot;owner_1&quot;              
  #&gt; [19] &quot;variety&quot;               &quot;processing_method&quot;     &quot;aroma&quot;                
  #&gt; [22] &quot;flavor&quot;                &quot;aftertaste&quot;            &quot;acidity&quot;              
  #&gt; [25] &quot;body&quot;                  &quot;balance&quot;               &quot;uniformity&quot;           
  #&gt; [28] &quot;clean_cup&quot;             &quot;sweetness&quot;             &quot;cupper_points&quot;        
  #&gt; [31] &quot;moisture&quot;              &quot;category_one_defects&quot;  &quot;quakers&quot;              
  #&gt; [34] &quot;color&quot;                 &quot;category_two_defects&quot;  &quot;expiration&quot;           
  #&gt; [37] &quot;certification_body&quot;    &quot;certification_address&quot; &quot;certification_contact&quot;
  #&gt; [40] &quot;unit_of_measurement&quot;   &quot;altitude_low_meters&quot;   &quot;altitude_high_meters&quot; 
  #&gt; [43] &quot;altitude_mean_meters&quot;
  
  coffee_split &lt;- initial_split(coffee, prop = 0.8)
  coffee_train &lt;- training(coffee_split)
  coffee_test &lt;- testing(coffee_split)
  
  coffee_recipe &lt;- recipe(coffee_train) %&gt;%
    update_role(cupper_points, new_role = &quot;outcome&quot;) %&gt;%
    update_role(
      variety, processing_method, country_of_origin,
      aroma, flavor, aftertaste, acidity, sweetness, altitude_mean_meters,
      new_role = &quot;predictor&quot;
    ) %&gt;%
    step_string2factor(all_nominal(), -all_outcomes()) %&gt;%
    step_knnimpute(
      country_of_origin, altitude_mean_meters,
      impute_with = imp_vars(
        in_country_partner, company, region, farm_name, certification_body
      )
    ) %&gt;%
    step_unknown(variety, processing_method, new_level = &quot;Unknown&quot;) %&gt;%
    step_other(country_of_origin, threshold = 0.01) %&gt;%
    step_other(processing_method, threshold = 0.10) %&gt;%
    step_other(variety, threshold = 0.10)
  coffee_recipe
  #&gt; Data Recipe
  #&gt; 
  #&gt; Inputs:
  #&gt; 
  #&gt;       role #variables
  #&gt;    outcome          1
  #&gt;  predictor          9
  #&gt; 
  #&gt;   33 variables with undeclared roles
  #&gt; 
  #&gt; Operations:
  #&gt; 
  #&gt; Factor variables from all_nominal(), -all_outcomes()
  #&gt; K-nearest neighbor imputation for country_of_origin, altitude_mean_meters
  #&gt; Unknown factor level assignment for variety, processing_method
  #&gt; Collapsing factor levels for country_of_origin
  #&gt; Collapsing factor levels for processing_method
  #&gt; Collapsing factor levels for variety
  
  # This works just fine
  coffee_recipe %&gt;%
    prep(coffee_train) %&gt;%
    bake(select(coffee_test, -cupper_points)) %&gt;%
    head()
  #&gt; # A tibble: 6 x 42
  #&gt;   total_cup_points species owner country_of_orig… farm_name lot_number mill 
  #&gt;              &lt;dbl&gt; &lt;fct&gt;   &lt;fct&gt; &lt;fct&gt;            &lt;fct&gt;     &lt;fct&gt;      &lt;fct&gt;
  #&gt; 1             90.6 Arabica meta… Ethiopia         metad plc &lt;NA&gt;       meta…
  #&gt; 2             87.9 Arabica cqi … other            &lt;NA&gt;      &lt;NA&gt;       &lt;NA&gt; 
  #&gt; 3             87.9 Arabica grou… United States (… &lt;NA&gt;      &lt;NA&gt;       &lt;NA&gt; 
  #&gt; 4             87.3 Arabica ethi… Ethiopia         &lt;NA&gt;      &lt;NA&gt;       &lt;NA&gt; 
  #&gt; 5             87.2 Arabica cqi … other            &lt;NA&gt;      &lt;NA&gt;       &lt;NA&gt; 
  #&gt; 6             86.9 Arabica ethi… Ethiopia         &lt;NA&gt;      &lt;NA&gt;       &lt;NA&gt; 
  #&gt; # … with 35 more variables: ico_number &lt;fct&gt;, company &lt;fct&gt;, altitude &lt;fct&gt;,
  #&gt; #   region &lt;fct&gt;, producer &lt;fct&gt;, number_of_bags &lt;dbl&gt;, bag_weight &lt;fct&gt;,
  #&gt; #   in_country_partner &lt;fct&gt;, harvest_year &lt;fct&gt;, grading_date &lt;fct&gt;,
  #&gt; #   owner_1 &lt;fct&gt;, variety &lt;fct&gt;, processing_method &lt;fct&gt;, aroma &lt;dbl&gt;,
  #&gt; #   flavor &lt;dbl&gt;, aftertaste &lt;dbl&gt;, acidity &lt;dbl&gt;, body &lt;dbl&gt;, balance &lt;dbl&gt;,
  #&gt; #   uniformity &lt;dbl&gt;, clean_cup &lt;dbl&gt;, sweetness &lt;dbl&gt;, moisture &lt;dbl&gt;,
  #&gt; #   category_one_defects &lt;dbl&gt;, quakers &lt;dbl&gt;, color &lt;fct&gt;,
  #&gt; #   category_two_defects &lt;dbl&gt;, expiration &lt;fct&gt;, certification_body &lt;fct&gt;,
  #&gt; #   certification_address &lt;fct&gt;, certification_contact &lt;fct&gt;,
  #&gt; #   unit_of_measurement &lt;fct&gt;, altitude_low_meters &lt;dbl&gt;,
  #&gt; #   altitude_high_meters &lt;dbl&gt;, altitude_mean_meters &lt;dbl&gt;
  
  # Now let's try putting it into a workflow and running tune_grid
  coffee_model &lt;- rand_forest(trees = 500, mtry = tune()) %&gt;%
    set_engine(&quot;ranger&quot;) %&gt;% 
    set_mode(&quot;regression&quot;)
  coffee_model
  #&gt; Random Forest Model Specification (regression)
  #&gt; 
  #&gt; Main Arguments:
  #&gt;   mtry = tune()
  #&gt;   trees = 500
  #&gt; 
  #&gt; Computational engine: ranger
  
  coffee_workflow &lt;- workflow() %&gt;% 
    add_recipe(coffee_recipe) %&gt;% 
    add_model(coffee_model)
  coffee_workflow
  #&gt; ══ Workflow ═══════════════════════════════════════════════════════════════════════════════════
  #&gt; Preprocessor: Recipe
  #&gt; Model: rand_forest()
  #&gt; 
  #&gt; ── Preprocessor ───────────────────────────────────────────────────────────────────────────────
  #&gt; 6 Recipe Steps
  #&gt; 
  #&gt; ● step_string2factor()
  #&gt; ● step_knnimpute()
  #&gt; ● step_unknown()
  #&gt; ● step_other()
  #&gt; ● step_other()
  #&gt; ● step_other()
  #&gt; 
  #&gt; ── Model ──────────────────────────────────────────────────────────────────────────────────────
  #&gt; Random Forest Model Specification (regression)
  #&gt; 
  #&gt; Main Arguments:
  #&gt;   mtry = tune()
  #&gt;   trees = 500
  #&gt; 
  #&gt; Computational engine: ranger
  
  coffee_grid &lt;- expand_grid(mtry = c(2, 5))
  coffee_folds &lt;- vfold_cv(coffee_train, v = 5)
  
  coffee_workflow %&gt;%
    tune_grid(
      resamples = coffee_folds,
      grid = coffee_grid
    )
  #&gt; x Fold1: model 1/2 (predictions): Error: Can't subset columns that don't exist.
  #&gt; x...
  #&gt; x Fold1: model 2/2 (predictions): Error: Can't subset columns that don't exist.
  #&gt; x...
  #&gt; x Fold2: model 1/2 (predictions): Error: Can't subset columns that don't exist.
  #&gt; x...
  #&gt; x Fold2: model 2/2 (predictions): Error: Can't subset columns that don't exist.
  #&gt; x...
  #&gt; x Fold3: model 1/2 (predictions): Error: Can't subset columns that don't exist.
  #&gt; x...
  #&gt; x Fold3: model 2/2 (predictions): Error: Can't subset columns that don't exist.
  #&gt; x...
  #&gt; x Fold4: model 1/2 (predictions): Error: Can't subset columns that don't exist.
  #&gt; x...
  #&gt; x Fold4: model 2/2 (predictions): Error: Can't subset columns that don't exist.
  #&gt; x...
  #&gt; x Fold5: model 1/2 (predictions): Error: Can't subset columns that don't exist.
  #&gt; x...
  #&gt; x Fold5: model 2/2 (predictions): Error: Can't subset columns that don't exist.
  #&gt; x...
  #&gt; Warning: All models failed in tune_grid(). See the `.notes` column.
  #&gt; Warning: This tuning result has notes. Example notes on model fitting include:
  #&gt; model 1/2 (predictions): Error: Can't subset columns that don't exist.
  #&gt; x Columns `species`, `owner`, `farm_name`, `lot_number`, `mill`, etc. don't exist.
  #&gt; model 1/2 (predictions): Error: Can't subset columns that don't exist.
  #&gt; x Columns `species`, `owner`, `farm_name`, `lot_number`, `mill`, etc. don't exist.
  #&gt; model 2/2 (predictions): Error: Can't subset columns that don't exist.
  #&gt; x Columns `species`, `owner`, `farm_name`, `lot_number`, `mill`, etc. don't exist.
  #&gt; # Tuning results
  #&gt; # 5-fold cross-validation 
  #&gt; # A tibble: 5 x 4
  #&gt;   splits            id    .metrics .notes          
  #&gt;   &lt;list&gt;            &lt;chr&gt; &lt;list&gt;   &lt;list&gt;          
  #&gt; 1 &lt;split [857/215]&gt; Fold1 &lt;NULL&gt;   &lt;tibble [2 × 1]&gt;
  #&gt; 2 &lt;split [857/215]&gt; Fold2 &lt;NULL&gt;   &lt;tibble [2 × 1]&gt;
  #&gt; 3 &lt;split [858/214]&gt; Fold3 &lt;NULL&gt;   &lt;tibble [2 × 1]&gt;
  #&gt; 4 &lt;split [858/214]&gt; Fold4 &lt;NULL&gt;   &lt;tibble [2 × 1]&gt;
  #&gt; 5 &lt;split [858/214]&gt; Fold5 &lt;NULL&gt;   &lt;tibble [2 × 1]&gt;
  </code></pre>
  <p><sup>Created on 2020-07-21 by the <a href="https://reprex.tidyverse.org" rel="noreferrer">reprex package</a> (v0.3.0)</sup></p>
  
  Session info
  <pre class="lang-r prettyprint-override"><code>devtools::session_info()
  #&gt; ─ Session info ───────────────────────────────────────────────────────────────
  #&gt;  setting  value                       
  #&gt;  version  R version 4.0.0 (2020-04-24)
  #&gt;  os       Ubuntu 20.04 LTS            
  #&gt;  system   x86_64, linux-gnu           
  #&gt;  ui       X11                         
  #&gt;  language en_AU:en                    
  #&gt;  collate  en_AU.UTF-8                 
  #&gt;  ctype    en_AU.UTF-8                 
  #&gt;  tz       Australia/Melbourne         
  #&gt;  date     2020-07-21                  
  #&gt; 
  #&gt; ─ Packages ───────────────────────────────────────────────────────────────────
  #&gt;  package      * version    date       lib source                            
  #&gt;  assertthat     0.2.1      2019-03-21 [1] CRAN (R 4.0.0)                    
  #&gt;  backports      1.1.8      2020-06-17 [1] CRAN (R 4.0.0)                    
  #&gt;  blob           1.2.1      2020-01-20 [1] CRAN (R 4.0.0)                    
  #&gt;  broom        * 0.7.0      2020-07-09 [1] CRAN (R 4.0.0)                    
  #&gt;  callr          3.4.3      2020-03-28 [1] CRAN (R 4.0.0)                    
  #&gt;  cellranger     1.1.0      2016-07-27 [1] CRAN (R 4.0.0)                    
  #&gt;  class          7.3-17     2020-04-26 [4] CRAN (R 4.0.0)                    
  #&gt;  cli            2.0.2      2020-02-28 [1] CRAN (R 4.0.0)                    
  #&gt;  codetools      0.2-16     2018-12-24 [4] CRAN (R 4.0.0)                    
  #&gt;  colorspace     1.4-1      2019-03-18 [1] CRAN (R 4.0.0)                    
  #&gt;  crayon         1.3.4      2017-09-16 [1] CRAN (R 4.0.0)                    
  #&gt;  curl           4.3        2019-12-02 [1] CRAN (R 4.0.0)                    
  #&gt;  DBI            1.1.0      2019-12-15 [1] CRAN (R 4.0.0)                    
  #&gt;  dbplyr         1.4.4      2020-05-27 [1] CRAN (R 4.0.0)                    
  #&gt;  desc           1.2.0      2018-05-01 [1] CRAN (R 4.0.0)                    
  #&gt;  devtools       2.3.0      2020-04-10 [1] CRAN (R 4.0.0)                    
  #&gt;  dials        * 0.0.8      2020-07-08 [1] CRAN (R 4.0.0)                    
  #&gt;  DiceDesign     1.8-1      2019-07-31 [1] CRAN (R 4.0.0)                    
  #&gt;  digest         0.6.25     2020-02-23 [1] CRAN (R 4.0.0)                    
  #&gt;  dplyr        * 1.0.0      2020-05-29 [1] CRAN (R 4.0.0)                    
  #&gt;  ellipsis       0.3.1      2020-05-15 [1] CRAN (R 4.0.0)                    
  #&gt;  evaluate       0.14       2019-05-28 [1] CRAN (R 4.0.0)                    
  #&gt;  fansi          0.4.1      2020-01-08 [1] CRAN (R 4.0.0)                    
  #&gt;  forcats      * 0.5.0      2020-03-01 [1] CRAN (R 4.0.0)                    
  #&gt;  foreach        1.5.0      2020-03-30 [1] CRAN (R 4.0.0)                    
  #&gt;  fs             1.4.1      2020-04-04 [1] CRAN (R 4.0.0)                    
  #&gt;  furrr          0.1.0      2018-05-16 [1] CRAN (R 4.0.0)                    
  #&gt;  future         1.17.0     2020-04-18 [1] CRAN (R 4.0.0)                    
  #&gt;  generics       0.0.2      2018-11-29 [1] CRAN (R 4.0.0)                    
  #&gt;  ggplot2      * 3.3.2.9000 2020-07-10 [1] Github (tidyverse/ggplot2@a11e098)
  #&gt;  globals        0.12.5     2019-12-07 [1] CRAN (R 4.0.0)                    
  #&gt;  glue           1.4.1      2020-05-13 [1] CRAN (R 4.0.0)                    
  #&gt;  gower          0.2.2      2020-06-23 [1] CRAN (R 4.0.0)                    
  #&gt;  GPfit          1.0-8      2019-02-08 [1] CRAN (R 4.0.0)                    
  #&gt;  gtable         0.3.0      2019-03-25 [1] CRAN (R 4.0.0)                    
  #&gt;  hardhat        0.1.4      2020-07-02 [1] CRAN (R 4.0.0)                    
  #&gt;  haven          2.2.0      2019-11-08 [1] CRAN (R 4.0.0)                    
  #&gt;  highr          0.8        2019-03-20 [1] CRAN (R 4.0.0)                    
  #&gt;  hms            0.5.3      2020-01-08 [1] CRAN (R 4.0.0)                    
  #&gt;  htmltools      0.5.0      2020-06-16 [1] CRAN (R 4.0.0)                    
  #&gt;  httr           1.4.1      2019-08-05 [1] CRAN (R 4.0.0)                    
  #&gt;  infer        * 0.5.3      2020-07-14 [1] CRAN (R 4.0.0)                    
  #&gt;  ipred          0.9-9      2019-04-28 [1] CRAN (R 4.0.0)                    
  #&gt;  iterators      1.0.12     2019-07-26 [1] CRAN (R 4.0.0)                    
  #&gt;  jsonlite       1.7.0      2020-06-25 [1] CRAN (R 4.0.0)                    
  #&gt;  knitr          1.29       2020-06-23 [1] CRAN (R 4.0.0)                    
  #&gt;  lattice        0.20-41    2020-04-02 [4] CRAN (R 4.0.0)                    
  #&gt;  lava           1.6.7      2020-03-05 [1] CRAN (R 4.0.0)                    
  #&gt;  lhs            1.0.2      2020-04-13 [1] CRAN (R 4.0.0)                    
  #&gt;  lifecycle      0.2.0      2020-03-06 [1] CRAN (R 4.0.0)                    
  #&gt;  listenv        0.8.0      2019-12-05 [1] CRAN (R 4.0.0)                    
  #&gt;  lubridate      1.7.8      2020-04-06 [1] CRAN (R 4.0.0)                    
  #&gt;  magrittr       1.5        2014-11-22 [1] CRAN (R 4.0.0)                    
  #&gt;  MASS           7.3-51.6   2020-04-26 [4] CRAN (R 4.0.0)                    
  #&gt;  Matrix         1.2-18     2019-11-27 [4] CRAN (R 4.0.0)                    
  #&gt;  memoise        1.1.0.9000 2020-05-09 [1] Github (hadley/memoise@4aefd9f)   
  #&gt;  modeldata    * 0.0.2      2020-06-22 [1] CRAN (R 4.0.0)                    
  #&gt;  modelr         0.1.6      2020-02-22 [1] CRAN (R 4.0.0)                    
  #&gt;  munsell        0.5.0      2018-06-12 [1] CRAN (R 4.0.0)                    
  #&gt;  nnet           7.3-14     2020-04-26 [4] CRAN (R 4.0.0)                    
  #&gt;  parsnip      * 0.1.2      2020-07-03 [1] CRAN (R 4.0.0)                    
  #&gt;  pillar         1.4.6      2020-07-10 [1] CRAN (R 4.0.0)                    
  #&gt;  pkgbuild       1.0.8      2020-05-07 [1] CRAN (R 4.0.0)                    
  #&gt;  pkgconfig      2.0.3      2019-09-22 [1] CRAN (R 4.0.0)                    
  #&gt;  pkgload        1.1.0      2020-05-29 [1] CRAN (R 4.0.0)                    
  #&gt;  plyr           1.8.6      2020-03-03 [1] CRAN (R 4.0.0)                    
  #&gt;  prettyunits    1.1.1      2020-01-24 [1] CRAN (R 4.0.0)                    
  #&gt;  pROC           1.16.2     2020-03-19 [1] CRAN (R 4.0.0)                    
  #&gt;  processx       3.4.3      2020-07-05 [1] CRAN (R 4.0.0)                    
  #&gt;  prodlim        2019.11.13 2019-11-17 [1] CRAN (R 4.0.0)                    
  #&gt;  ps             1.3.3      2020-05-08 [1] CRAN (R 4.0.0)                    
  #&gt;  purrr        * 0.3.4      2020-04-17 [1] CRAN (R 4.0.0)                    
  #&gt;  R6             2.4.1      2019-11-12 [1] CRAN (R 4.0.0)                    
  #&gt;  ranger         0.12.1     2020-01-10 [1] CRAN (R 4.0.0)                    
  #&gt;  Rcpp           1.0.5      2020-07-06 [1] CRAN (R 4.0.0)                    
  #&gt;  readr        * 1.3.1      2018-12-21 [1] CRAN (R 4.0.0)                    
  #&gt;  readxl         1.3.1      2019-03-13 [1] CRAN (R 4.0.0)                    
  #&gt;  recipes      * 0.1.13     2020-06-23 [1] CRAN (R 4.0.0)                    
  #&gt;  remotes        2.1.1      2020-02-15 [1] CRAN (R 4.0.0)                    
  #&gt;  reprex         0.3.0      2019-05-16 [1] CRAN (R 4.0.0)                    
  #&gt;  rlang          0.4.7      2020-07-09 [1] CRAN (R 4.0.0)                    
  #&gt;  rmarkdown      2.3.2      2020-07-12 [1] Github (rstudio/rmarkdown@ff1b279)
  #&gt;  rpart          4.1-15     2019-04-12 [4] CRAN (R 4.0.0)                    
  #&gt;  rprojroot      1.3-2      2018-01-03 [1] CRAN (R 4.0.0)                    
  #&gt;  rsample      * 0.0.7      2020-06-04 [1] CRAN (R 4.0.0)                    
  #&gt;  rstudioapi     0.11       2020-02-07 [1] CRAN (R 4.0.0)                    
  #&gt;  rvest          0.3.5      2019-11-08 [1] CRAN (R 4.0.0)                    
  #&gt;  scales       * 1.1.1      2020-05-11 [1] CRAN (R 4.0.0)                    
  #&gt;  selectr        0.4-2      2019-11-20 [1] CRAN (R 4.0.0)                    
  #&gt;  sessioninfo    1.1.1      2018-11-05 [1] CRAN (R 4.0.0)                    
  #&gt;  stringi        1.4.6      2020-02-17 [1] CRAN (R 4.0.0)                    
  #&gt;  stringr      * 1.4.0      2019-02-10 [1] CRAN (R 4.0.0)                    
  #&gt;  survival       3.1-12     2020-04-10 [4] CRAN (R 4.0.0)                    
  #&gt;  testthat       2.3.2      2020-03-02 [1] CRAN (R 4.0.0)                    
  #&gt;  tibble       * 3.0.3      2020-07-10 [1] CRAN (R 4.0.0)                    
  #&gt;  tidymodels   * 0.1.1      2020-07-14 [1] CRAN (R 4.0.0)                    
  #&gt;  tidyr        * 1.1.0      2020-05-20 [1] CRAN (R 4.0.0)                    
  #&gt;  tidyselect     1.1.0      2020-05-11 [1] CRAN (R 4.0.0)                    
  #&gt;  tidytuesdayR   1.0.1      2020-07-10 [1] CRAN (R 4.0.0)                    
  #&gt;  tidyverse    * 1.3.0      2019-11-21 [1] CRAN (R 4.0.0)                    
  #&gt;  timeDate       3043.102   2018-02-21 [1] CRAN (R 4.0.0)                    
  #&gt;  tune         * 0.1.1      2020-07-08 [1] CRAN (R 4.0.0)                    
  #&gt;  usethis        1.6.1      2020-04-29 [1] CRAN (R 4.0.0)                    
  #&gt;  utf8           1.1.4      2018-05-24 [1] CRAN (R 4.0.0)                    
  #&gt;  vctrs          0.3.2      2020-07-15 [1] CRAN (R 4.0.0)                    
  #&gt;  withr          2.2.0      2020-04-20 [1] CRAN (R 4.0.0)                    
  #&gt;  workflows    * 0.1.2      2020-07-07 [1] CRAN (R 4.0.0)                    
  #&gt;  xfun           0.15       2020-06-21 [1] CRAN (R 4.0.0)                    
  #&gt;  xml2           1.3.2      2020-04-23 [1] CRAN (R 4.0.0)                    
  #&gt;  yaml           2.2.1      2020-02-01 [1] CRAN (R 4.0.0)                    
  #&gt;  yardstick    * 0.0.7      2020-07-13 [1] CRAN (R 4.0.0)                    
  #&gt; 
  #&gt; [1] /home/mdneuzerling/R/x86_64-pc-linux-gnu-library/4.0
  #&gt; [2] /usr/local/lib/R/site-library
  #&gt; [3] /usr/lib/R/site-library
  #&gt; [4] /usr/lib/R/library
  </code></pre>