Learn R Programming

⚠️There's a newer version (3.1.0) of this package.Take me there.

usethis

The goal of usethis is to automate many common package and analysis setup tasks.

Installation

You can install the development version of usethis from github with:

# install.packages("devtools")
devtools::install_github("r-lib/usethis")

Usage

All use_* functions operate on the current directory unless you specify the base_path argument. indicates that usethis has setup everything for you. indicates that you'll need to do some work yourself.

library(usethis)

# Create a new package -------------------------------------------------
tmp <- file.path(tempdir(), "mypkg")
create_package(tmp)
#> Changing active project to mypkg
#> ✔ Creating 'R/'
#> ✔ Creating 'man/'
#> ✔ Writing 'DESCRIPTION'
#> ✔ Writing 'NAMESPACE'

# Modify the description ----------------------------------------------
use_mit_license("My Name")
#> ✔ Setting License field in DESCRIPTION to 'MIT + file LICENSE'
#> ✔ Writing 'LICENSE.md'
#> ✔ Adding '^LICENSE\\.md$' to '.Rbuildignore'
#> ✔ Writing 'LICENSE'

use_package("MASS", "Suggests")
#> ✔ Adding 'MASS' to Suggests field in DESCRIPTION
#> ● Use `requireNamespace("MASS", quietly = TRUE)` to test if package is installed
#> ● Then use `MASS::fun()` to refer to functions.

use_dev_package("callr")
#> ✔ Adding 'callr' to Imports field in DESCRIPTION
#> ● Refer to functions with `callr::fun()`
#> ✔ Adding 'r-lib/callr' to DESCRIPTION Remotes

# Set up various packages ---------------------------------------------
use_roxygen_md()
#> ✔ Setting Roxygen field in DESCRIPTION to 'list(markdown = TRUE)'
#> ✔ Setting RoxygenNote field in DESCRIPTION to '6.0.1'
#> ● Re-document

use_rcpp()
#> ✔ Adding 'Rcpp' to LinkingTo field in DESCRIPTION
#> ✔ Adding 'Rcpp' to Imports field in DESCRIPTION
#> ✔ Creating 'src/'
#> ✔ Adding '*.o', '*.so', '*.dll' to 'src/.gitignore'
#> ● Include the following roxygen tags somewhere in your package
#>   #' @useDynLib mypkg, .registration = TRUE
#>   #' @importFrom Rcpp sourceCpp
#>   NULL
#> ● Run document()

use_revdep()
#> ✔ Creating 'revdep/'
#> ✔ Adding '^revdep$' to '.Rbuildignore'
#> ✔ Adding 'revdep/checks' to './.gitignore'
#> ✔ Adding 'revdep/library' to './.gitignore'
#> ✔ Writing 'revdep/email.yml'
#> ● Run checks with `revdepcheck::revdep_check(num_workers = 4)`

# Set up other files -------------------------------------------------
use_readme_md()
#> ✔ Writing 'README.md'
#> ● Edit 'README.md'

use_news_md()
#> ✔ Writing 'NEWS.md'
#> ● Edit 'NEWS.md'

use_test("my-test")
#> ✔ Adding 'testthat' to Suggests field in DESCRIPTION
#> ✔ Creating 'tests/testthat/'
#> ✔ Writing 'tests/testthat.R'
#> ✔ Writing 'tests/testthat/test-my-test.R'
#> ● Edit 'tests/testthat/test-my-test.R'

x <- 1
y <- 2
use_data(x, y)
#> ✔ Creating 'data/'
#> ✔ Saving x to data/x.rda
#> ✔ Saving y to data/y.rda

# Use git ------------------------------------------------------------
use_git()
#> ✔ Initialising Git repo
#> ✔ Adding '.Rhistory', '.RData', '.Rproj.user' to './.gitignore'
#> ✔ Adding files and committing

Copy Link

Version

Install

install.packages('usethis')

Monthly Downloads

186,843

Version

1.1.0

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Hadley Wickham

Last Published

November 17th, 2017

Functions in usethis (1.1.0)

licenses

Use MIT, GPL-3, or Apache 2.0 license for your package
use_git

Initialise a git repository.
browse_github

Quickly browse to important package webpages
ci

Continuous integration
use_git_hook

Add a git hook.
use_badge

Use a README badge
use_cran_comments

Create a comment for submission to CRAN.
use_build_ignore

Add files to .Rbuildignore
use_data

Create package data
create_from_github

Create a project from a github repository
create_package

Create a new package or project
use_dev_version

Increment development version
proj_get

Get and set currently active project
use_directory

Use a directory.
tidyverse

Helpers for the tidyverse
use_depsy_badge

Create a Depsy badge
use_pipe

Use magrittr's pipe in your package
use_description

Create a default DESCRIPTION file for a package.
use_pkgdown

Use pkgdown
use_r

Create a new R file
use_code_of_conduct

Add a code of conduct
use_rcpp

Use Rcpp
use_cran_badge

Create a CRAN badge
use_github_labels

Create standard github labels for labelling issues.
use_namespace

Use a basic NAMESPACE
use_lifecycle_badge

Create a life cycle badge
use_news_md

Create a simple NEWS.md
use_rmarkdown_template

Add an RMarkdown Template
use_roxygen_md

Use roxygen with markdown
use_testthat

Create tests
use_package

Use specified package.
use_usethis

Make usethis available interactively
use_vignette

Create a vignette
use_package_doc

Create package documentation template
use_git_ignore

Tell git to ignore files
use_rstudio

Use RStudio
use_github

Connect a local repo with GitHub.
use_template

Use a usethis template
use_readme_rmd

Create README files.
use_revdep

Set up devtools revdep template
edit

Open useful configuration files