Chapter 3. Package Structure and State
This chapter will start you on the road to package development by converting the implicit knowledge you’ve gained from using R packages into the explicit knowledge needed to create and modify them. You’ll learn about the various states a package can be in and the difference between a package and library (and why you should care).
Package States
When you create or modify a package, you work on its “source code” or “source files.” You interact with the in-development package in its source form. This is not the package form you are most familiar with from day-to-day use. Package development workflows make much more sense if you understand the five states an R package can be in:
-
Source
-
Bundled
-
Binary
-
Installed
-
In-memory
You already know some of the functions that put packages into these states. For example, install.packages()
can move a package from the source, bundled, or binary states into the installed state. devtools::install_github()
takes a source package on GitHub and moves it into the installed state. The library()
function loads an installed package into memory, making it available for immediate and direct use.
Source Package
A source package is just a directory of files with a specific structure. It includes particular components, such as a DESCRIPTION file, an R/ directory containing .R files, and so on. Most of the remaining chapters in this book are dedicated to detailing these components.
If you are new to package ...
Get R Packages, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.