--- title: "Recommended folder structure" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Recommended folder structure} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ## For a simple R project `checklist` assumes you have some main folder for your project. Within that main folder you create the `checklist` project which should contain all R related files (scripts and data). Place all non R related files in other folders under the main folder. The `checklist` project has a mandatory folder `source` where you place all the R and Rmarkdown files. The other folders are optional. The `data` folder holds all the data files for the analysis. The `output` folder holds the rendered files from the analysis. The `media` folder holds the images you want to incorporate in the Rmarkdown files. The `inst` folder stores some `checklist` specific data. While you can add other folders the root of your `checklist` project, we recommend to stick with the default folders. Having a non-standard folder name results in a warning when running `check_folder()`. In case you want to use version control (strongly recommended), use the root of the R project as the root of the version control project. ``` ─┬─ main_folder ├─── folder_a ├─── folder_b └─┬─ checklist_project_name ├─── data ├─── inst ├─── media ├─── output └─── source ``` ## A more complex project We advise to use subfolders with `source`, `data` and / or `media` when the project is more complex. You are free to create a relevant folder structure with these folders. E.g. `source/import` for scripts to import data; `source/analysis` for scripts to run the analysis and `source/report` for the `bookdown` report. ``` ─┬─ main_folder ├─── folder_a ├─── folder_b └─┬─ r_project_name ├─┬─ data │ ├─── raw │ ├─── intermediate │ └─── processed ├─── inst ├─┬─ media │ ├─── collaborators │ └─── report ├─── output └─┬─ source ├─── import ├─── analysis └─── report ``` ## A project with several reports with different data and media You can opt to use report specific `data` and/or `media` folders instead of common `data` and/or `media` folders. However, if you choose to have a report specific `data` folder, you no longer can have a common `data` folder. The same goes for a report specific `media` folder. Hence a `data` folder at the project root implies that the user can find all data in that folder. No `data` folder at the project root implies that the user needs to look for the data in the source folder of the report. ``` ─┬─ main_folder ├─── folder_a ├─── folder_b └─┬─ r_project_name ├─── inst ├─── output └─┬─ source ├─┬─ report_a │ ├─── data │ └─── media └─┬─ report_b ├─── data └─── media ```