-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathREADME.Rmd
More file actions
112 lines (73 loc) · 3.8 KB
/
Copy pathREADME.Rmd
File metadata and controls
112 lines (73 loc) · 3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
---
output: github_document
---
<!-- README.md is generated from README.Rmd. Please edit that file -->
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
```
# A template R workflow for general data analysis
<!-- badges: start -->
<!-- badges: end -->
This repository is a template for a [`docker`](https://www.docker.com/get-started)-containerised, [`{targets}`](https://docs.ropensci.org/targets/)-based, [`{renv}`](https://rstudio.github.io/renv/articles/renv.html)-enabled [`R`](https://cran.r-project.org/) workflow for general data analysis.
## About the Project
[A DESCRIPTION OF THE PROJECT GOES HERE]
## Repository Structure
The project repository is structured as follows:
```
ihtm-targets-template
|-- .github/
|-- R/
|-- data-raw/
|-- data/
|-- outputs/
|-- renv
|-- reports
|-- .Rprofile
|-- _targets.R
|-- packages.R
|-- renv.lock
```
* `.github` contains project testing and automated deployment of outputs workflows via continuous integration and continuous deployment (CI/CD) using Github Actions.
* `R/` contains functions developed/created specifically for use in this workflow.
* `data-raw/` contains raw datasets, usually either downloaded from source or added manually, that are used in the project.
* `data/` contains intermediate and final data outputs produced by the workflow.
* `outputs/` contains compiled reports and figures produced by the workflow.
* `renv/` contains `renv` package specific files and directories used by the package for maintaining R package dependencies within the project. The directory `renv/library`, is a library that contains all packages currently used by the project. This directory, and all files and sub-directories within it, are all generated and managed by the `renv` package. Users should not change/edit these manually.
* `reports/` contains literate code for R Markdown and/or Quarto reports rendered in the workflow.
* `.Rprofile` file is a project R profile generated when initiating `renv` for the first time. This file is run automatically every time R is run within this project, and `renv` uses it to configure the R session to use the `renv` project library.
* `_targets.R` file defines the steps in the workflow's data ingest, data processing, data analysis, and reporting pipeline.
* `packages.R` file lists out all R package dependencies required by the workflow.
* `renv.lock` file is the `renv` lockfile which records enough metadata about every package used in this project that it can be re-installed on a new machine. This file is generated by the `renv` package and should not be changed/edited manually.
## Reproducibility
### R version
This project is built using `R 4.6.1`. To manage R versions, it is recommended to use [`rig`](https://github.com/r-lib/rig) - an R installation manager - to be able to install multiple versions of R and switch between them as needed.
### R package dependencies
This project uses the `{renv}` framework to record R package dependencies and versions. Packages and versions used are recorded in `renv.lock` and code used to manage dependencies is in the `renv` directory and other files in the root project directory.
On starting an R session in the working directory of this repository, first run
```R
renv::restore()
```
to install R package dependencies. This is only done once when the project is being initiated for the first time by a user.
### The workflow
The current workflow has the following steps:
```{r full-workflow, echo = FALSE, results = "asis"}
cat(
c(
"```mermaid",
targets::tar_mermaid(
targets_only = TRUE, outdated = FALSE, legend = FALSE, color = FALSE
),
"```"
),
sep = "\n"
)
```
## Authors
[LIST OF AUTHORS GOES HERE]
## License
[LICENSE INFORMATION GOES HERE]
## Citation
[CITATION INFORMATION GOES HERE]