package.skeleton {utils}R Documentation

Create a Skeleton for a New Source Package


package.skeleton automates some of the setup for a new source package. It creates directories, saves functions and data to appropriate places, and creates skeleton help files and a ‘Read-and-delete-me’ file describing further steps in packaging.


package.skeleton(name = "anRpackage", list, environment = .GlobalEnv,
                 path = ".", force = FALSE, namespace = FALSE,
                 code_files = character())


name character string: the directory name for your package.
list character vector naming the R objects to put in the package.
environment if list is omitted and code_files is empty, the contents of this environment are packaged.
path path to put the package directory in.
force If FALSE will not overwrite an existing directory.
namespace a logical indicating whether to add a name space for the package.
code_files a character vector with the paths to R code files to build the package around.


The package sources are placed in subdirectory name of path.

This tries to create filenames valid for all OSes known to run R. Invalid characters are replaced by _, invalid names are preceded by zz, and finally the converted names are made unique by make.unique(sep = "_"). This can be done for code and help files but not data files (which are looked for by name). Also, the code and help files should have names starting with an ASCII letter or digit, and this is checked and if necessary z prepended.

If code_files are given, these are copied over to the package code directory (so that non-function code objects are not converted to data sets), and the corresponding help files are generated.

When you are done, delete the ‘Read-and-delete-me’ file, as it should not be distributed.


used for its side-effects.


Read the Writing R Extensions manual for more details.

Once you have created a source package you need to install it: see the R Installation and Administration manual, INSTALL and install.packages.

See Also



## two functions and two "data sets" :
f <- function(x,y) x+y
g <- function(x,y) x-y
d <- data.frame(a=1, b=2)
e <- rnorm(1000)

package.skeleton(list=c("f","g","d","e"), name="mypkg")

[Package utils version 2.5.0 Index]