knitr::opts_chunk$set(echo = TRUE, eval = FALSE)

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).

usethis::create_package(path = getwd())

Create vignette infrastructure

I create vignette infrastructure and dummy vignette

usethis::use_vignette("temp")

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

use_readme_md()
use_news_md()

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.

# install.packages("devtools")
devtools::install_github("brouwern/dayoff")

Create git ignore

Am not sure how to use this properly yet : (

use_git_ignore(".pdf", directory = ".")

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

usethis::git_vaccinate()

Add required packages

these are the packages I typically use. I should vectorize this so it would look nicer : )

usethis::use_package("dplyr",   "Imports")
usethis::use_package("tidyr",   "Imports")
usethis::use_package("ggplot2", "Imports")
usethis::use_package("ggpubr",  "Imports")

# use_package("nlme", "Imports")
# use_package("lme4", "Imports")
# use_package("bbmle", "Imports")
# use_package("RCurl", "Imports")
# use_package("GGally", "Imports")
# use_package("broom", "Imports")

# use_package("arm", "Imports")

# devtools::use_package("data.table", "Imports")
# devtools::use_package("car", "Imports")
# devtools::use_package("lawstat", "Imports")
# devtools::use_package("effsize", "Imports")
# devtools::use_package("here", "Imports")
# devtools::use_package("metafor", "Imports")
# devtools::use_package("Formula", "Imports")
# devtools::use_package("data.tree", "Imports")

Don't save/load user workspace between sessions

usethis::use_blank_slate()

Use roxygen for documentation

Where would we be without roxygen

usethis::use_roxygen_md()

Package-level documents

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

usethis::use_package_doc()

Use pkgdown

For making front end website

usethis::use_pkgdown()

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"))

Raw data

# milk_raw <- read.csv(here::here("/inst/extdata",
#                     "skibiel_mammalsmilk_raw.csv"))
# 
# use_data(milk_raw)
# use_r("milk_raw")
use_data_raw(name = "dengueseq", open = interactive())
write(dengueseq, file="dengueseq.fasta")

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")
#use_data_raw()

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



brouwern/dayoff documentation built on Nov. 4, 2019, 8:15 a.m.