R package building automation
[This article was first published on StaTEAstics., and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Inspired by the post at http://giventhedata.blogspot.tw/2013/02/my-r-package-development-cheat-sheet.html. I have decided to publish my cheat script for package development as well.
Building package used to be a nightmare, filling in all those Rdfiles manually can cause some serious brain damage. Thanks to the roxygen2 team and knitr, building a package with nice documentation is merely running a script like what I have below. Just modify and change pkgName to the name of your package then your package should be ready in 5 minute.
## Build the package ## --------------------------------------------------------------------- ## Remove the folder if it exists if(file.exists("./pkgName")) unlink("pkgName", recursive = TRUE) ## Build the package package.skeleton("pkgName", code_files = paste("./Codes/", dir("./Codes/", pattern = "\\.R$"), sep = ""), force = TRUE) ## Include the data dir.create("pkgName/data") file.copy(from = "./FAOcountryProfile.RData", to = "pkgName/data/", overwrite = TRUE) file.copy(from = "./FAOregionProfile.RData", to = "pkgName/data/", overwrite = TRUE) file.copy(from = "./FAOmetaTable.RData", to = "pkgName/data/", overwrite = TRUE) file.copy(from = "./DESCRIPTION", to = "pkgName/", overwrite = TRUE) ## Include Demo dir.create("pkgName/demo") file.copy(from = "./pkgNamedemo.R", to = "pkgName/demo/", overwrite = TRUE) cat("pkgNamedemo Demonstration for the pkgName package\n", file = "pkgName/demo/00Index") ## Use roxygen to build the documentation library(roxygen2) roxygenize("pkgName") ## Include vignette dir.create("./pkgName/inst/doc/") file.copy(from = "../Documentation/pkgName/pkgName.pdf", to = "./pkgName/inst/doc/", overwrite = TRUE) ## Create the vignette hack from (http://yihui.name/knitr/demo/vignette/) ## This is not required for R 3.0.0 cat("%\\VignetteIndexEntry{General Manual}\n\\documentclass{article}\n\\begin{document}\n\\end{document}", file = "./pkgName/inst/doc/pkgName.Rnw") ## Build and check the package system("R CMD INSTALL --build pkgName") system("R CMD build pkgName") system("Rcmd check pkgName") system("Rcmd check --as-cran pkgName")
PS: This is my first post using Rmd, the highlight for R is defintely much better than plain text. However, I think some twick is required for my blog theme.
To leave a comment for the author, please follow the link and comment on their blog: StaTEAstics..
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.