These functions create an R project:

  • create_package() creates an R package

  • create_project() creates a non-package project, i.e. a data analysis project

Both functions can be called on an existing project; you will be asked before any existing files are changed.

  fields = NULL,
  rstudio = rstudioapi::isAvailable(),
  check_name = TRUE,
  open = interactive()

create_project(path, rstudio = rstudioapi::isAvailable(), open = interactive())



A path. If it exists, it is used. If it does not exist, it is created, provided that the parent path exists.


A named list of fields to add to DESCRIPTION, potentially overriding default values. See use_description() for how you can set personalized defaults using package options


If TRUE, calls use_rstudio() to make the new package or project into an RStudio Project. If FALSE and a non-package project, a sentinel .here file is placed so that the directory can be recognized as a project by the here or rprojroot packages.


Whether to check if the name is valid for CRAN and throw an error if not


If TRUE, activates the new project:

  • If RStudio desktop, the package is opened in a new session.

  • If on RStudio server, the current RStudio project is activated.

  • Otherwise, the working directory and active project is changed.


Path to the newly created project or package, invisibly.