Introduction

The following code outlines the key steps I use to set up the framework for a package, principally using the usethis package.

Packages

I use these packages for setting things up

library(devtools)
library(usethis)
library(here)

Create repository

I create git repo via the GitHub website, the cloned into it by hand by creating an RStudio Project.

Set up package with usethis

I then use usethis::create_package() within my project directory to build the basic package infrastructure This overights the initial project (after a handy prompt in the console).

Create vignette infrastructure

I create vignette infrastructure and dummy vignette

I then write my vignettes using this template and change the file name. I use “a)”, “b)”, “c)” as a prefix on my vignettes so that show up in order when the website is rendered using packagedown.

Create “readme” and “news” files

Populating the readme file

I add basic information to the readme fill and add sample code for a call to devtools::install_github() to install the package.

Create git ignore

Am not sure how to use this properly yet : (

Add typical files to gitignore: ‘.Rproj.user’, ‘.Rhistory’, ‘.Rdata’, ‘.DS_Store’

Don’t save/load user workspace between sessions

Use roxygen for documentation

Where would we be without roxygen

Package-level documents

“Adds a dummy .R file that will prompt roxygen to generate basic package-level documentation.”

Use pkgdown

For making front end website

Set up data

Create folder for external data

dir.create(here::here("/inst"))
dir.create(here::here("/inst/extdata"))

This could be done with use_directory()

Look at data in my extdata file

External data is stored in “/inst/extdata”

list.files(here::here("/inst/extdata"))

License

For information on licenses see http://kbroman.org/pkg_primer/pages/licenses.html

Plaintext versions of licenses can be found at https://creativecommons.org/2011/04/15/plaintext-versions-of-creative-commons-licenses-and-cc0/

usethis::use_ccby_license(name = "Nathan Brouwer")

Spell check

use_spell_check

Other potentially useful usethis functions

use_r() #Create or edit a .R file

use_build_ignore() Add files to .Rbuildignore

use_version() use_dev_version() Increment package version

edit_r_profile() edit_r_environ() edit_r_makevars() edit_rstudio_snippets() edit_git_config() edit_git_ignore()

Use a directory