Workflows

Jeff Stevens

2023-01-30

Review: Mental model of coding

Mental model of file directories

Directories/folders

File system

Structure of directories and files stored on your computer

~/OneDrive/active_sync/projects/dpavir_2023
├── R
│   ├── erase_code_chunks.R
│   ├── exercises_functions.R
│   ├── flashcards.R
│   └── utils.R
├── README.md
├── _freeze
│   └── slides
│       ├── 00_getting_started
│       │   └── execute-results
│       │       └── html.json
│       └── 03_coding
│           └── execute-results
│               └── html.json
├── _publish.yml
├── _quarto.yml
├── _site
├── admin
│   ├── audits.md
│   ├── mid_semester_evals.csv
│   ├── outline.md
│   └── topics.ods
├── checkins
│   ├── 01_checkin.Rmd
│   ├── 01_checkin.pdf
│   ├── 01_checkin_answers.Rmd
│   ├── 01_checkin_answers.pdf
│   ├── 02_checkin.Rmd
│   ├── 02_checkin.pdf
│   ├── 02_checkin_answers.Rmd
│   ├── 02_checkin_answers.pdf
│   ├── 03_checkin.Rmd
│   ├── 03_checkin.pdf
│   ├── 03_checkin_answers.Rmd
│   ├── 03_checkin_answers.pdf
│   ├── 04_checkin.Rmd
│   ├── 04_checkin.pdf
│   ├── 04_checkin_answers.Rmd
│   └── 04_checkin_answers.pdf
├── code
│   ├── 01_introduction.Rmd
│   ├── 01_introduction_answers.Rmd
│   ├── 02_rstudio.html
│   ├── 02_rstudio.qmd
│   ├── 03_coding.Rmd
│   ├── 03_coding_answers.Rmd
│   ├── 05_rmarkdown.Rmd
│   ├── 06_datatypes.Rmd
│   ├── 06_datatypes_answers.Rmd
│   ├── 07_datastructures.Rmd
│   ├── 07_datastructures_answers.Rmd
│   ├── 08_importing.Rmd
│   ├── 08_importing_answers.Rmd
│   ├── 09_validating.Rmd
│   ├── 09_validating_answers.Rmd
│   ├── 10_selecting.Rmd
│   ├── 10_selecting_answers.Rmd
│   ├── 11_mutating.Rmd
│   ├── 11_mutating_answers.Rmd
│   ├── 12_piping.Rmd
│   ├── 12_piping_answers.Rmd
│   ├── 13_filtering.Rmd
│   ├── 13_filtering_answers.Rmd
│   ├── 14_summarizing.Rmd
│   ├── 14_summarizing_answers.Rmd
│   ├── 15_pivoting.Rmd
│   ├── 15_pivoting_answers.Rmd
│   ├── 16_separating.Rmd
│   ├── 16_separating_answers.Rmd
│   ├── 17_mergingcolumns.Rmd
│   ├── 17_mergingcolumns_answers.Rmd
│   ├── 18_mergingrows.Rmd
│   ├── 18_mergingrows_answers.Rmd
│   ├── 19_numbers.Rmd
│   ├── 19_numbers_answers.Rmd
│   ├── 20_strings.Rmd
│   ├── 20_strings_answers.Rmd
│   ├── 21_patterns.Rmd
│   ├── 21_patterns_answers.Rmd
│   ├── codebook_mtcars.Rmd
│   ├── codebook_mtcars.pdf
│   └── penguins_extra.csv
├── coding.html
├── coding.qmd
├── custom.scss
├── data
│   ├── dog_breed_data.xlsx
│   ├── dog_breed_popularity.csv
│   ├── dog_breed_ranks.csv
│   ├── dog_breed_traits.csv
│   ├── dog_breed_traits.xlsx
│   ├── dog_breed_traits_clean.csv
│   ├── newdata.csv
│   ├── newdata2.csv
│   ├── newdata3.csv
│   └── obed_data.csv
├── decks
│   ├── 01_introduction.html
│   ├── 01_introductionb.html
│   ├── 03_coding.html
│   ├── 03_codingb.html
│   ├── 06_datatypes.html
│   ├── 06_datatypesb.html
│   ├── 07_datastructures.html
│   ├── 07_datastructuresb.html
│   ├── 08_importing.html
│   ├── 08_importingb.html
│   ├── 09_validating.html
│   ├── 09_validatingb.html
│   ├── 10_cleaning_columns.html
│   ├── 10_cleaning_columnsb.html
│   ├── 13_wrangling_rows.html
│   ├── 13_wrangling_rowsb.html
│   ├── 15_tidy_data.html
│   ├── 15_tidy_datab.html
│   ├── 17_merging_data.html
│   └── 17_merging_datab.html
├── dpavir_2023.Rproj
├── exercises
│   ├── 01_introduction
│   │   ├── 01_introduction.Rmd
│   │   └── rsconnect
│   │       └── documents
│   │           └── 01_introduction.Rmd
│   │               └── shinyapps.io
│   │                   └── jeffreyrstevens
│   │                       ├── 01_introduction.dcf
│   │                       └── dpavir2023_01_introduction.dcf
│   ├── 02_rstudio
│   │   ├── 02_rstudio.Rmd
│   │   └── rsconnect
│   │       └── documents
│   │           └── 02_rstudio.Rmd
│   │               └── shinyapps.io
│   │                   └── jeffreyrstevens
│   │                       └── dpavir2023_02_rstudio.dcf
│   ├── 03_coding
│   │   ├── 03_coding.Rmd
│   │   └── rsconnect
│   │       └── documents
│   │           └── 03_coding.Rmd
│   │               └── shinyapps.io
│   │                   └── jeffreyrstevens
│   │                       └── dpavir2023_03_coding.dcf
│   ├── 04_workflows
│   │   ├── 04_workflows.Rmd
│   │   ├── images
│   │   │   └── directory.png
│   │   └── rsconnect
│   │       └── documents
│   │           └── 04_workflows.Rmd
│   │               └── shinyapps.io
│   │                   └── jeffreyrstevens
│   │                       └── dpavir2023_04_workflows.dcf
│   ├── 05_rmarkdown
│   │   ├── 05_rmarkdown.Rmd
│   │   ├── images
│   │   │   └── rmarkdown_flow.png
│   │   └── rsconnect
│   │       └── documents
│   │           └── 05_rmarkdown.Rmd
│   │               └── shinyapps.io
│   │                   └── jeffreyrstevens
│   │                       └── dpavir2023_05_rmarkdown.dcf
│   ├── 06_datatypes
│   │   ├── 06_datatypes.Rmd
│   │   └── rsconnect
│   │       └── documents
│   │           └── 06_datatypes.Rmd
│   │               └── shinyapps.io
│   │                   └── jeffreyrstevens
│   │                       └── dpavir2023_06_datatypes.dcf
│   ├── 07_datastructures
│   │   ├── 07_datastructures.Rmd
│   │   ├── images
│   │   │   └── data-structures.png
│   │   └── rsconnect
│   │       └── documents
│   │           └── 07_datastructures.Rmd
│   │               └── shinyapps.io
│   │                   └── jeffreyrstevens
│   │                       └── dpavir2023_07_datastructures.dcf
│   ├── 08_importing
│   │   ├── 08_importing.Rmd
│   │   └── rsconnect
│   │       └── documents
│   │           └── 08_importing.Rmd
│   │               └── shinyapps.io
│   │                   └── jeffreyrstevens
│   │                       └── dpavir2023_08_importing.dcf
│   ├── 09_validating
│   │   ├── 09_validating.Rmd
│   │   └── rsconnect
│   │       └── documents
│   │           └── 09_validating.Rmd
│   │               └── shinyapps.io
│   │                   └── jeffreyrstevens
│   │                       └── dpavir2023_09_validating.dcf
│   ├── 10_selecting
│   │   ├── 10_selecting.Rmd
│   │   └── rsconnect
│   │       └── documents
│   │           └── 10_selecting.Rmd
│   │               └── shinyapps.io
│   │                   └── jeffreyrstevens
│   │                       └── dpavir2023_10_selecting.dcf
│   ├── 11_mutating
│   │   ├── 11_mutating.Rmd
│   │   └── rsconnect
│   │       └── documents
│   │           └── 11_mutating.Rmd
│   │               └── shinyapps.io
│   │                   └── jeffreyrstevens
│   │                       └── dpavir2023_11_mutating.dcf
│   ├── 12_piping
│   │   ├── 12_piping.Rmd
│   │   └── rsconnect
│   │       └── documents
│   │           └── 12_piping.Rmd
│   │               └── shinyapps.io
│   │                   └── jeffreyrstevens
│   │                       └── dpavir2023_12_piping.dcf
│   ├── 13_filtering
│   │   ├── 13_filtering.Rmd
│   │   └── rsconnect
│   │       └── documents
│   │           └── 13_filtering.Rmd
│   │               └── shinyapps.io
│   │                   └── jeffreyrstevens
│   │                       └── dpavir2023_13_filtering.dcf
│   ├── 14_summarizing
│   │   ├── 14_summarizing.Rmd
│   │   └── rsconnect
│   │       └── documents
│   │           └── 14_summarizing.Rmd
│   │               └── shinyapps.io
│   │                   └── jeffreyrstevens
│   │                       └── dpavir2023_14_summarizing.dcf
│   ├── 15_pivoting
│   │   ├── 15_pivoting.Rmd
│   │   ├── images
│   │   │   ├── tidy_data.png
│   │   │   ├── tidy_data2.png
│   │   │   └── tidy_data2_small.png
│   │   └── rsconnect
│   │       └── documents
│   │           └── 15_pivoting.Rmd
│   │               └── shinyapps.io
│   │                   └── jeffreyrstevens
│   │                       └── dpavir2023_15_pivoting.dcf
│   ├── 16_separating
│   │   ├── 16_separating.Rmd
│   │   └── rsconnect
│   │       └── documents
│   │           └── 16_separating.Rmd
│   │               └── shinyapps.io
│   │                   └── jeffreyrstevens
│   │                       └── dpavir2023_16_separating.dcf
│   ├── 17_mergingcolumns
│   │   ├── 17_mergingcolumns.Rmd
│   │   └── rsconnect
│   │       └── documents
│   │           └── 17_mergingcolumns.Rmd
│   │               └── shinyapps.io
│   │                   └── jeffreyrstevens
│   │                       └── dpavir2023_17_mergingcolumns.dcf
│   ├── 18_mergingrows
│   │   ├── 18_mergingrows.Rmd
│   │   ├── images
│   │   │   └── filtering_joins.png
│   │   └── rsconnect
│   │       └── documents
│   │           └── 18_mergingrows.Rmd
│   │               └── shinyapps.io
│   │                   └── jeffreyrstevens
│   │                       └── dpavir2023_18_mergingrows.dcf
│   ├── 20_strings
│   │   ├── 20_strings.Rmd
│   │   └── rsconnect
│   │       └── documents
│   │           └── 20_strings.Rmd
│   │               └── shinyapps.io
│   │                   └── jeffreyrstevens
│   │                       └── dpavir2023_20_strings.dcf
│   ├── 21_patterns
│   │   ├── 21_patterns.Rmd
│   │   └── rsconnect
│   │       └── documents
│   │           └── 21_patterns.Rmd
│   │               └── shinyapps.io
│   │                   └── jeffreyrstevens
│   │                       └── dpavir2023_21_patterns.dcf
│   └── publishing.md
├── group_challenges.Rmd
├── images
│   ├── backslashes.png
│   ├── baser_tidyverse.jpeg
│   ├── binary1s0s.jpg
│   ├── code_hero_allisonhorst.jpg
│   ├── codebook.png
│   ├── codebook2.png
│   ├── coding_cases_allisonhorst.png
│   ├── console.png
│   ├── cv_pdf.png
│   ├── cv_text.png
│   ├── data-structures-overview.png
│   ├── data-visualization.jpg
│   ├── data_analysis_workflow.png
│   ├── data_types.png
│   ├── directory.png
│   ├── directory_dpavir.png
│   ├── directory_structure.png
│   ├── dplyr_arrange.png
│   ├── dplyr_arrange.svg
│   ├── dplyr_filter.png
│   ├── dplyr_filter.svg
│   ├── dplyr_filter_allisonhorst.jpg
│   ├── dplyr_hex.png
│   ├── dplyr_mutate.png
│   ├── dplyr_mutate.svg
│   ├── dplyr_mutate_change.png
│   ├── dplyr_mutate_change.svg
│   ├── dplyr_mutate_create.png
│   ├── dplyr_mutate_create.svg
│   ├── dplyr_relocate.png
│   ├── dplyr_relocate.svg
│   ├── dplyr_rename.png
│   ├── dplyr_rename.svg
│   ├── dplyr_select.png
│   ├── dplyr_select.svg
│   ├── dplyr_select_move.png
│   ├── dplyr_select_move.svg
│   ├── dplyr_summarise.png
│   ├── dplyr_summarise.svg
│   ├── dplyr_summary.png
│   ├── dplyr_summary.svg
│   ├── dplyr_wrangling_allisonhorst.png
│   ├── drake_meme.jpg
│   ├── drake_meme.png
│   ├── drake_meme.svg
│   ├── filtering_joins.png
│   ├── filtering_joins.svg
│   ├── generativeart1.png
│   ├── generativeart2.png
│   ├── generativeart3.jpg
│   ├── generativeart4.jpg
│   ├── googlesheets4_hex.png
│   ├── hadley_baser.png
│   ├── hadley_shitty_code.jpeg
│   ├── haven_hex.png
│   ├── here_allisonhorst.png
│   ├── install_vs_load.jpg
│   ├── join-anti.png
│   ├── join-full.png
│   ├── join-inner.png
│   ├── join-left.png
│   ├── join-many-to-many.png
│   ├── join-one-to-many.png
│   ├── join-outer.png
│   ├── join-right.png
│   ├── join-semi-many.png
│   ├── join-semi.png
│   ├── join-setup.png
│   ├── join-setup2.png
│   ├── join-venn.png
│   ├── joins_anti.gif
│   ├── joins_df.png
│   ├── joins_full.gif
│   ├── joins_inner.gif
│   ├── joins_left.gif
│   ├── joins_left2.gif
│   ├── joins_right.gif
│   ├── joins_semi.gif
│   ├── literate_programming.jpg
│   ├── macos_finder.png
│   ├── markdown.png
│   ├── mental_model_select.svg
│   ├── mentalmodel_coding.dia
│   ├── mentalmodel_coding.png
│   ├── mentalmodel_datatypes.png
│   ├── mentalmodel_datatypes.svg
│   ├── mentalmodel_import.dia
│   ├── mentalmodel_import.png
│   ├── mentalmodel_merging.dia
│   ├── mentalmodel_merging.png
│   ├── mentalmodel_mutate.png
│   ├── mentalmodel_mutate.svg
│   ├── mentalmodel_r.dia
│   ├── mentalmodel_r.png
│   ├── mentalmodel_rmarkdown.dia
│   ├── mentalmodel_rmarkdown.png
│   ├── mentalmodel_rstudio.dia
│   ├── mentalmodel_rstudio.png
│   ├── mentalmodel_select.png
│   ├── mentalmodel_select.svg
│   ├── mentalmodel_strings.dia
│   ├── mentalmodel_strings.png
│   ├── mentalmodel_workflow.dia
│   ├── mentalmodel_workflow.png
│   ├── microsoft365r_hex.png
│   ├── myrmarkdown.png
│   ├── plaintext_binary.gif
│   ├── r-learning-debate.png
│   ├── r-packages.png
│   ├── r_console.png
│   ├── r_first_then_allisonhorst.png
│   ├── r_inclusion.png
│   ├── r_learners_allisonhorst.png
│   ├── r_logo.png
│   ├── r_pancakes.jpg
│   ├── r_pillows.jpeg
│   ├── r_rollercoaster_allisonhorst.png
│   ├── r_script.png
│   ├── r_vs_r_packages.png
│   ├── rainbowr_allisonhorst.gif
│   ├── readr_hex.png
│   ├── readxl_hex.png
│   ├── regex_meme.jpeg
│   ├── regex_meme.png
│   ├── regex_meme.webp
│   ├── regex_meme2.jpeg
│   ├── relational-nycflights.png
│   ├── reprex_hex.png
│   ├── rmarkdown_allisonhorst.png
│   ├── rmarkdown_flow.png
│   ├── rmarkdown_hex.png
│   ├── rproject.webp
│   ├── rprojects_new.png
│   ├── rstats_meme2.jpg
│   ├── rstats_meme3.jpg
│   ├── rstudio_file_manager.png
│   ├── rstudio_ide.png
│   ├── setop_df.png
│   ├── setop_intersect.gif
│   ├── setop_setdiff.gif
│   ├── setop_setdiff2.gif
│   ├── setop_union-all.gif
│   ├── setop_union.gif
│   ├── sql_joins.png
│   ├── sql_setop.png
│   ├── sql_setop.svg
│   ├── stringr_allisonhorst.png
│   ├── stringr_cheatsheet.png
│   ├── stringr_hex.png
│   ├── terminal.png
│   ├── terminal_file_system.png
│   ├── tidy_data.png
│   ├── tidy_data2.png
│   ├── tidy_data_1.png
│   ├── tidy_pivoting.png
│   ├── tidyr-pivoting.gif
│   ├── tidyr_hex.png
│   ├── tidyr_pivot_longer.png
│   ├── tidyr_pivot_wider.png
│   ├── tidyr_pivotlonger.png
│   ├── tidyr_separate.png
│   ├── tidyr_spread_gather_allisonhorst.png
│   ├── tidyr_unite.png
│   ├── tidyverse_banner.png
│   ├── tidyverse_baser.webp
│   ├── validate.png
│   ├── visual_editor.png
│   ├── windows_file_explorer.png
│   ├── working_directory.png
│   └── working_directory.svg
├── index.html
├── index.qmd
├── logo
│   ├── dpavir.ico
│   ├── dpavir_base.png
│   ├── dpavir_base.svg
│   ├── dpavir_hex.png
│   ├── dpavir_hex.svg
│   ├── dpavir_icon.ico
│   ├── dpavir_icon.png
│   ├── dpavir_icon.svg
│   └── hex_base.R
├── materials.html
├── materials.qmd
├── meetings-listing.json
├── meetings.html
├── meetings.qmd
├── notes_for_next_year.md
├── posts
│   ├── 00_welcome
│   │   ├── index.html
│   │   └── index.qmd
│   ├── 01_introduction
│   │   ├── index.html
│   │   └── index.qmd
│   ├── 02_rstudio
│   │   ├── index.html
│   │   └── index.qmd
│   ├── 03_coding
│   │   ├── index.html
│   │   └── index.qmd
│   ├── 04_workflows
│   │   ├── index.html
│   │   └── index.qmd
│   ├── 05_rmarkdown
│   │   ├── index.html
│   │   └── index.qmd
│   ├── 06_datatypes
│   │   ├── index.html
│   │   └── index.qmd
│   ├── 07_datastructures
│   │   ├── index.html
│   │   └── index.qmd
│   ├── 08_importing
│   │   ├── index.html
│   │   └── index.qmd
│   ├── 09_validating
│   │   ├── index.html
│   │   └── index.qmd
│   ├── 10_selecting
│   │   ├── index.html
│   │   └── index.qmd
│   ├── 11_mutating
│   │   ├── index.html
│   │   └── index.qmd
│   ├── 12_piping
│   │   ├── index.html
│   │   └── index.qmd
│   ├── 13_filtering
│   │   ├── index.html
│   │   └── index.qmd
│   ├── 14_summarizing
│   │   ├── index.html
│   │   └── index.qmd
│   ├── 15_pivoting
│   │   ├── index.html
│   │   └── index.qmd
│   ├── 16_separating
│   │   ├── index.html
│   │   └── index.qmd
│   ├── 17_mergingcolumns
│   │   ├── index.html
│   │   └── index.qmd
│   ├── 18_mergingrows
│   │   ├── index.html
│   │   └── index.qmd
│   ├── 19_numbers
│   │   ├── index.html
│   │   └── index.qmd
│   ├── 20_strings
│   │   ├── index.html
│   │   └── index.qmd
│   ├── 21_patterns
│   │   ├── index.html
│   │   └── index.qmd
│   ├── index.html
│   └── index.qmd
├── resources.html
├── resources.qmd
├── rsconnect
│   └── shinyapps.io
│       └── jeffreyrstevens
│           ├── dpavir2023_02_rstudio.dcf
│           └── dpavir_2023_01_introduction.dcf
├── schedule.html
├── schedule.qmd
├── site_libs
│   ├── bootstrap
│   │   ├── bootstrap-icons.css
│   │   ├── bootstrap-icons.woff
│   │   ├── bootstrap.min.css
│   │   └── bootstrap.min.js
│   ├── clipboard
│   │   └── clipboard.min.js
│   ├── quarto-html
│   │   ├── anchor.min.js
│   │   ├── popper.min.js
│   │   ├── quarto-html.min.css
│   │   ├── quarto-syntax-highlighting-dark.css
│   │   ├── quarto.js
│   │   ├── tabby.min.js
│   │   ├── tippy.css
│   │   └── tippy.umd.min.js
│   ├── quarto-listing
│   │   ├── list.min.js
│   │   └── quarto-listing.js
│   ├── quarto-nav
│   │   ├── headroom.min.js
│   │   └── quarto-nav.js
│   ├── quarto-search
│   │   ├── autocomplete.umd.js
│   │   ├── fuse.min.js
│   │   └── quarto-search.js
│   └── revealjs
│       ├── dist
│       │   ├── reset.css
│       │   ├── reveal.css
│       │   ├── reveal.esm.js
│       │   ├── reveal.esm.js.map
│       │   ├── reveal.js
│       │   ├── reveal.js.map
│       │   └── theme
│       │       ├── fonts
│       │       │   ├── league-gothic
│       │       │   │   ├── LICENSE
│       │       │   │   ├── league-gothic.css
│       │       │   │   ├── league-gothic.eot
│       │       │   │   ├── league-gothic.ttf
│       │       │   │   └── league-gothic.woff
│       │       │   └── source-sans-pro
│       │       │       ├── LICENSE
│       │       │       ├── source-sans-pro-italic.eot
│       │       │       ├── source-sans-pro-italic.ttf
│       │       │       ├── source-sans-pro-italic.woff
│       │       │       ├── source-sans-pro-regular.eot
│       │       │       ├── source-sans-pro-regular.ttf
│       │       │       ├── source-sans-pro-regular.woff
│       │       │       ├── source-sans-pro-semibold.eot
│       │       │       ├── source-sans-pro-semibold.ttf
│       │       │       ├── source-sans-pro-semibold.woff
│       │       │       ├── source-sans-pro-semibolditalic.eot
│       │       │       ├── source-sans-pro-semibolditalic.ttf
│       │       │       ├── source-sans-pro-semibolditalic.woff
│       │       │       └── source-sans-pro.css
│       │       └── quarto.css
│       └── plugin
│           ├── highlight
│           │   ├── highlight.esm.js
│           │   ├── highlight.js
│           │   ├── monokai.css
│           │   ├── plugin.js
│           │   └── zenburn.css
│           ├── markdown
│           │   ├── markdown.esm.js
│           │   ├── markdown.js
│           │   └── plugin.js
│           ├── math
│           │   ├── katex.js
│           │   ├── math.esm.js
│           │   ├── math.js
│           │   ├── mathjax2.js
│           │   ├── mathjax3.js
│           │   └── plugin.js
│           ├── notes
│           │   ├── notes.esm.js
│           │   ├── notes.js
│           │   ├── plugin.js
│           │   └── speaker-view.html
│           ├── pdf-export
│           │   ├── pdfexport.js
│           │   └── plugin.yml
│           ├── quarto-line-highlight
│           │   ├── line-highlight.css
│           │   ├── line-highlight.js
│           │   └── plugin.yml
│           ├── quarto-support
│           │   ├── footer.css
│           │   ├── plugin.yml
│           │   └── support.js
│           ├── reveal-menu
│           │   ├── menu.css
│           │   ├── menu.js
│           │   ├── plugin.yml
│           │   ├── quarto-menu.css
│           │   └── quarto-menu.js
│           ├── search
│           │   ├── plugin.js
│           │   ├── search.esm.js
│           │   └── search.js
│           └── zoom
│               ├── plugin.js
│               ├── zoom.esm.js
│               └── zoom.js
├── slides
│   ├── 00_getting_started.html
│   ├── 00_getting_started.qmd
│   ├── 01_introduction.html
│   ├── 01_introduction.qmd
│   ├── 02_rstudio.html
│   ├── 02_rstudio.qmd
│   ├── 03_coding.html
│   ├── 03_coding.qmd
│   ├── 04_workflows.qmd
│   ├── 04_workflows.rmarkdown
│   ├── 05_rmarkdown.qmd
│   ├── 06_datatypes.qmd
│   ├── 07_datastructures.qmd
│   ├── 08_importing.qmd
│   ├── 09_validating.qmd
│   ├── 10_selecting.qmd
│   ├── 11_mutating.qmd
│   ├── 12_piping.qmd
│   ├── 13_filtering.qmd
│   ├── 14_summarizing.qmd
│   ├── 15_pivoting.qmd
│   ├── 16_separating.qmd
│   ├── 17_mergingcolumns.qmd
│   ├── 18_mergingrows.qmd
│   ├── 19_numbers.qmd
│   ├── 20_strings.qmd
│   ├── 21_patterns.html
│   ├── 21_patterns.qmd
│   ├── 21_patterns_files
│   │   └── libs
│   │       ├── clipboard
│   │       │   └── clipboard.min.js
│   │       ├── quarto-html
│   │       │   ├── popper.min.js
│   │       │   ├── quarto-html.min.css
│   │       │   ├── quarto-syntax-highlighting-dark.css
│   │       │   ├── tabby.min.js
│   │       │   ├── tippy.css
│   │       │   └── tippy.umd.min.js
│   │       └── revealjs
│   │           ├── dist
│   │           │   ├── reset.css
│   │           │   ├── reveal.css
│   │           │   ├── reveal.esm.js
│   │           │   ├── reveal.esm.js.map
│   │           │   ├── reveal.js
│   │           │   ├── reveal.js.map
│   │           │   └── theme
│   │           │       ├── fonts
│   │           │       │   ├── league-gothic
│   │           │       │   │   ├── LICENSE
│   │           │       │   │   ├── league-gothic.css
│   │           │       │   │   ├── league-gothic.eot
│   │           │       │   │   ├── league-gothic.ttf
│   │           │       │   │   └── league-gothic.woff
│   │           │       │   └── source-sans-pro
│   │           │       │       ├── LICENSE
│   │           │       │       ├── source-sans-pro-italic.eot
│   │           │       │       ├── source-sans-pro-italic.ttf
│   │           │       │       ├── source-sans-pro-italic.woff
│   │           │       │       ├── source-sans-pro-regular.eot
│   │           │       │       ├── source-sans-pro-regular.ttf
│   │           │       │       ├── source-sans-pro-regular.woff
│   │           │       │       ├── source-sans-pro-semibold.eot
│   │           │       │       ├── source-sans-pro-semibold.ttf
│   │           │       │       ├── source-sans-pro-semibold.woff
│   │           │       │       ├── source-sans-pro-semibolditalic.eot
│   │           │       │       ├── source-sans-pro-semibolditalic.ttf
│   │           │       │       ├── source-sans-pro-semibolditalic.woff
│   │           │       │       └── source-sans-pro.css
│   │           │       └── quarto.css
│   │           └── plugin
│   │               ├── highlight
│   │               │   ├── highlight.esm.js
│   │               │   ├── highlight.js
│   │               │   ├── monokai.css
│   │               │   ├── plugin.js
│   │               │   └── zenburn.css
│   │               ├── markdown
│   │               │   ├── markdown.esm.js
│   │               │   ├── markdown.js
│   │               │   └── plugin.js
│   │               ├── math
│   │               │   ├── katex.js
│   │               │   ├── math.esm.js
│   │               │   ├── math.js
│   │               │   ├── mathjax2.js
│   │               │   ├── mathjax3.js
│   │               │   └── plugin.js
│   │               ├── notes
│   │               │   ├── notes.esm.js
│   │               │   ├── notes.js
│   │               │   ├── plugin.js
│   │               │   └── speaker-view.html
│   │               ├── pdf-export
│   │               │   ├── pdfexport.js
│   │               │   └── plugin.yml
│   │               ├── quarto-line-highlight
│   │               │   ├── line-highlight.css
│   │               │   ├── line-highlight.js
│   │               │   └── plugin.yml
│   │               ├── quarto-support
│   │               │   ├── footer.css
│   │               │   ├── plugin.yml
│   │               │   └── support.js
│   │               ├── reveal-menu
│   │               │   ├── menu.css
│   │               │   ├── menu.js
│   │               │   ├── plugin.yml
│   │               │   ├── quarto-menu.css
│   │               │   └── quarto-menu.js
│   │               ├── search
│   │               │   ├── plugin.js
│   │               │   ├── search.esm.js
│   │               │   └── search.js
│   │               └── zoom
│   │                   ├── plugin.js
│   │                   ├── zoom.esm.js
│   │                   └── zoom.js
│   ├── _quarto.yml
│   └── custom.scss
├── styles.css
└── syllabus.qmd

File managers

  • Apps/GUIs to interact with file system
    • Windows File Explorer
    • MacOS Finder

File managers

  • RStudio

Terminals

  • Interact with file system through prompt/command line
  • If not familiar with terminal, read primer for Windows or MacOS

Mental model of file directories

Paths

Paths

Convert tree structure to character string

  • exercises/01_introduction/rsconnect/documents/01_introduction.Rmd
    /shinapps.io/jeffreyrstevens/01_introduction.dcf

Absolute paths

From root directory

  • Starts with drive letter or /

    • Windows: C:\users\jeff\Documents\projects\dpavir_2023\R\

    • Linux and MacOS: /home/jeff/projects/dpavir_2023/R/

Relative paths

From current directory

  • Starts with first subdirectory name

    • If in projects/, relative path to R/ is dpavir_2023/R
  • Use relative paths!
  • Why?

Changing directories

Change directories with cd

  • /home/jeff/projects/dpavir_2023/
  • To move from dpavir_2023/ to rsconnect/, type
    cd exercises/01_introduction/rsconnect/

Go backwards

Move backwards with cd ..

  • One set of .. for each directory going backwards

  • To move from rsconnect/ to 01_introduction/,
    type cd ..

  • To move from 01_introduction/ to code/,
    type cd ../../code/

Let’s try it!

  • Go to Files in RStudio
  • Add folder named test and a subfolder named R.
  • Go to Terminal.
  • Type ls or dir.
  • How do we go to test/?
  • How do we go back?
  • How do we go to test/R/?
  • How do we go back up to test/?

Mental model of file directories

Workflows

Project directory structure

  • Build a consistent directory structure

  • Why?

  • Consistency for you

  • Adapt structure to your needs or lab requirements

  • Consistency for the lab

  • Make a template directory

Working directories

Base directory for R session

  • View your working directory

    • Console: getwd()
    • RStudio: top of Console

What is your working directory?

RStudio Projects

Convenient system to:

  • Set working directory

  • Open files you had open before closing RStudio

  • Focus on relative paths

  • Enable version control

Use them! Always!

RStudio Projects

  • Let’s create an RStudio Project for this course

RStudio Projects

  • Create an RStudio Project in the existing test/ directory
  • Create your typical project structure

  • Use the terminal to change directories in your project

Project working directories

{here}: The package that sets your working directory to the RStudio Project root directory

  • read_csv(here("data/a.csv"))

Mental model of file directories