Appendix
Last updated on 2024-12-03 | Edit this page
Estimated time: 12 minutes
Overview
Questions
- Where can I add my functions?
- How do I need to document my functions?
- How can I read the documentation of my functions?
- How can I write a manuscript with my project outputs?
Objectives
- Write your functions documentation following the rcompendium template.
- Load your functions and update its documentation using devtools.
- Create a website for the project using usethis.
- Create a manuscript template with
{rrtools}
.
What about my functions?
How do I write my functions documentation?
We must write our custom functions as Modular
functions and save them in the R/
folder. You can
write the documentation of your functions following a
standard documentation method.
The rcompendium template already contains a
fun-demo.R
for this.
Callout
Remember that documented functions can facilitate further efforts to reuse them and create a specific R package!
How do I load my functions?
To load your project functions, as written in
line 20
of the make.R
file, run:
R
devtools::load_all(here::here())
How do I read my functions documentation?
Is there an easier way to read the documentation of my modular functions?
Remember that after you write the documentation of new functions on
the R/
folder, you must update your function and project
documentation files, which are in different files and folders.
To do this run:
R
devtools::document()
This last step will update the following:
-
man/
folder, which stores the project documentation, and - the
NAMESPACE
, that registers the functions that your project exports for your data analysis to run.
Lastly, you can ask with ?function
in the
Console
and read the documentation for your functions, as
any other function from the packages you installed. Try to run this:
R
?print_msg
Create a project website
An alternative way to navigate all the files generated by the rcompendium template is with a website.
We can create a website using GitHub pages. To make this possible run:
R
usethis::use_pkgdown_github_pages()
This function implements the GitHub setup needed to automatically
publish your site to GitHub pages using the {pkgdown}
package.
This output is possible in two steps:
- First, it prepares to publish the pkgdown site from a new
gh-pages
branch. - Then, it configures a GitHub Action to automatically build the site and deploy it via GitHub Pages.
Lastly, the pkgdown
site’s URL is added to the
pkgdown
configuration file, to the URL field of
DESCRIPTION
, and to the GitHub repo.
Commit and Push your changes.
Callout
Remember that when using GitHub Actions, next to the
SHA/hash
will be the status icon of the
actions.
- Yellow ball for “Job running”,
- Red cross for “Failed Run”, and
- Green check for “job done!”.
Please wait for it to get green and inspect the Reference tab on the navigation bar.
Now, let’s compare the fun-demo.R
file, the
?print_msg
output, and the website format:
Callout
A pkgdown
website format can facilitate the navigation
through:
- Community files and
- Function documentation.
If required, you can add vignettes for an rcompendium using:
R
rcompendium::add_vignette(filename = "vignette-01")
Vignettes look more suitable for package documentation than a project. But knowing that we have that alternative with the rcompendium template is helpful.
How do I write a manuscript for my project?
You can use handy functions from another research compendium package
called {rrtools}
.
To get a template of files required to fill a manuscript run:
R
rrtools::use_analysis(location = "inst", data_in_git = FALSE)
This function will create a folder inst/
with a new set
of folders for data and figures. You can avoid using them and only use
the .qmd
as a template for your manuscript.
The .qmd
files get formatted from several template files
like references using .bib
and citation style using
.csl
.
Using rrtools::use_analysis()
with those arguments will
not modify your rcompendium configuration. Other
functions can change it.
This manuscript will not be visible on a website unless moved to the
vignette/
folder. We have yet to test that behaviour.
Reproducible research features
We also relate Reproducibility with the practice of describing and documenting the research process so that another researcher can re-run the software on the same data input to get the same data outputs.
Features related to this are:
Documentation strings in one or two lines using active verbs to describe how inputs turn into outputs (Irving et al. 2021). The documentation of functions, like the
fun-demo.R
template file, follows this good practice.Manuscripts using literate programming with tools like Rmarkdown or Quarto. The template provided by
{rrtools}
facilitates files to start with this practice.
Callout
Remember that if you have all your changes as commits with git, you
can revert any modification with the button
Revert
, located between the
Stage
and Ignore
buttons.
Key Points
- Write your functions documentation following the
R/fun-demo.R
template. - Run your project functions with
devtools::load_all()
. - Update your functions documentation with
devtools::document()
. - Read your functions documentation with the
?function
notation in the R console. - Create a website for the project with
usethis::use_pkgdown_github_pages()
. - Use a manuscript template with
rrtools::use_analysis(location = "inst", data_in_git = FALSE)
. - Documentation strings and Manuscripts using literate programming are features related to Reproducible research.