Creating a Package
Last updated on 2024-10-24 | Edit this page
Estimated time: 54 minutes
Overview
Questions
- How do you create a package in R?
Objectives
- identify how package are organized and store on a user’s machine
- explain the differences between each of the
- describe the iterative steps in the package creation process
- use devtools::create_package() to intialize the package development environment
- convert scripts into a package that can be used by others
Introduction
This is a lesson created via The Carpentries Workbench. It is written in Pandoc-flavored Markdown for static files and R Markdown for dynamic files that can render code into output. Please refer to the Introduction to The Carpentries Workbench for full documentation.
Packages structure and states alt=‘A diagram depicting the structures and states of a package’
Challenge 1: What is the correct order of these steps?
Organize the steps involved in the creation of a package * __
binary
* __ source
* __ bundle
* __ in-memory
* __ installed
- __ source
- __ bundle
- __ binary
- __ installed
- __ in-memory
Challenge 2: how do you nest solutions within challenge blocks?
You can add a line with at least three colons and a
solution
tag.
Figures
You can also include figures generated from R Markdown:
R
pie(
c(Sky = 78, "Sunny side of pyramid" = 17, "Shady side of pyramid" = 5),
init.angle = 315,
col = c("deepskyblue", "yellow", "yellow3"),
border = FALSE
)

Or you can use standard markdown for static figures with the following syntax:
{alt='alt text for accessibility purposes'}
Callout
Callout sections can highlight information.
They are sometimes used to emphasise particularly important points but are also used in some lessons to present “asides”: content that is not central to the narrative of the lesson, e.g. by providing the answer to a commonly-asked question.
Math
One of our episodes contains \(\LaTeX\) equations when describing how to create dynamic reports with {knitr}, so we now use mathjax to describe this:
$\alpha = \dfrac{1}{(1 - \beta)^2}$
becomes: \(\alpha = \dfrac{1}{(1 - \beta)^2}\)
Cool, right?
Key Points
- Use
.md
files for episodes when you want static content - Use
.Rmd
files for episodes when you need to generate output - Run
sandpaper::check_lesson()
to identify any issues with your lesson - Run
sandpaper::build_lesson()
to preview your lesson locally