R Analysis Packages are an extension of the standard R package layout designed to support publishing a collection of R notebooks used for data analysis as static html, typically using GitHub Pages.
R
Notebooks include a YAML header and R Markdown body. The
Analysis Package Layout follows the convention that the first non-blank
line in the body of an R notebook serves as a brief description of the
work. rdev includes an “Analysis Notebook” RStudio R
Markdown template (File > New File > Rmarkdown > From Template)
and a README.Rmd template optionally installed with
use_analysis_package() that dynamically builds a list of
notebooks and descriptions when devtools:build_readme()
is run.
Starting in version 1.8.0, rdev also supports publishing Analysis
Notebooks using Quarto as an
alternative to the original use_analysis_package().
rdev versions 1.10.2 and newer also support use of Quarto Documents
(.qmd) for Analysis Notebooks, although RStudio currently
doesn’t support .qmd
files as document templates.
The table below documents the complete R Analysis Package layout:
- Path: Path to the file or directory relative to the package root
- R: Included in the R package definition
- g: Stored in git
- Function: The function of the file or directory
| Path | R | g | Function |
|---|---|---|---|
| .Rbuildignore | x |
Files excluded from the package, sorted using
sort_rbuildignore()
|
|
| .RData | Saved workspace - not used | ||
| .Rhistory | R command history | ||
| .Rprofile | x |
Used by renv and to attach
development tools and set project options |
|
| .Rproj.user | RStudio local project files | ||
| .git | git version control | ||
| .gitattributes | x |
Used to configure GitHub language statistics | |
| .github | x |
GitHub templates and workflows | |
| .gitignore | x |
git exclusions based on GitHub
R. Generated files outside of docs (used by GitHub
Pages) are excluded. |
|
| .lintr | x |
lintr
configuration as described in the Style Guide,
vignette("style-guide")
|
|
| .nojekyll | x |
Disable Jekyll processing on GitHub Pages | |
| .quarto | Used by Quarto | ||
| DESCRIPTION | x |
x |
Package metadata. Use “Suggests” for development tools, per renv |
| LICENSE | x |
x |
Generated with
usethis::use_mit_license()
|
| LICENSE.md | x |
See above, used by pkgdown and Quarto | |
| NAMESPACE | x |
x |
Automatically generated with roxygen2 |
| NEWS.md | x |
x |
Release notes, used by get_release(), pkgdown and Quarto
|
| R | x |
x |
All project functions go here, with roxygen2 comments |
| README.Rmd | x |
Generated with usethis::use_readme_md() or
rdev template |
|
| README.md | x |
x |
Generated with
devtools::build_readme()
|
| TODO.md | x |
x |
To-do list, inspired by renv’s historical TODO.md |
| _freeze | x |
Used by the Quarto freeze
option |
|
| _pkgdown.yml | x |
pkgdown metadata, stored in the project root to make it more discoverable (not used with Quarto) | |
| _quarto.yml | x |
x |
Quarto configuration file |
| analysis | x |
x |
Exploratory data analysis in R Notebooks, R
Presentations, and Quarto documents. Include functions from the R
directory using library(), not source(). |
| analysis/_metadata.yml | x |
x |
Quarto directory configuration file |
| analysis/assets | x |
x |
External assets (images, other files) included in R Notebooks |
| analysis/data | x |
x |
Used to store small data sets used for analysis and
exported data as csv files |
| analysis/import | Used for local storage of large data sets | ||
| analysis/rendered | Manually rendered versions of analysis/
files to be included in docs/, like .Rpres
files
|
||
| changelog.qmd | x |
x |
Quarto front-end to NEWS.md |
| demos | x |
Not used, as recommended by R Packages | |
| docs | x |
Used by build_analysis_site() and
build_quarto_site() to render the R Package and Notebooks
for GitHub Pages |
|
| exec | x |
Command line executable scripts - not used | |
| index.qmd | x |
x |
Quarto home page, using the listing page format |
| inst | x |
x |
Installed files: templates and WORDLIST |
| inst/bin | x |
x |
Used for shell scripts that support development, like
setup-r
|
| inst/rmarkdown/templates | x |
x |
R Markdown Templates |
| man | x |
x |
Automatically generated with roxygen2 |
| package.Rproj | x |
Use the same name for the package, .Rproj, directory, and GitHub repository | |
| pkgdown | x |
Store all pkgdown files here (not used with Quarto) | |
| po | x |
x |
Used for Internationalization if needed |
| renv | x |
Used by renv | |
| renv.lock | x |
renv lockfile | |
| tests | x |
x |
Tests using testthat and spelling |
| tools | x |
Auxiliary files needed for building packages - not used | |
| vignettes | x |
x |
Package vignettes and articles, written in R Markdown |
