[R] What is the most efficient practice to develop an R package?

Dirk Eddelbuettel edd at debian.org
Mon Oct 26 19:58:19 CET 2009


On 26 October 2009 at 13:29, Peng Yu wrote:
| On Mon, Oct 26, 2009 at 11:22 AM, Dirk Eddelbuettel <edd at debian.org> wrote:
| >
| > On 26 October 2009 at 07:57, Martin Morgan wrote:
| > | Peng Yu wrote:
| > | > I am reading Section 5 and 6 of
| > | > http://cran.r-project.org/doc/contrib/Leisch-CreatingPackages.pdf
| > | >
| > | > It seems that I have to do the following two steps in order to make an
| > | > R package. But when I am testing these package, these two steps will
| > | > run many times, which may take a lot of time. So when I still develop
| > | > the package, shall I always source('linmod.R') to test it. Once the
| > | > code in linmod.R is finalized, then I run the following two steps?
| > | >
| > | > I'm wondering what people usually do when developing packages.
| > | >
| > | >
| > | > 1. Run the following command in R to create the package
| > | > package.skeleton(name="linmod", code_files="linmod.R")
| > |
| > | Do this once, to get a skeleton. Then edit the R source etc in the
| > | created package.
| > |
| > | > 2. Run the following command in shell to install
| > | > R CMD INSTALL -l /path/to/library linmod
| > |
| > | see R CMD INSTALL --help and use options that minimize the amount of
| > | non-essential work, e.g., no vignettes or documentation until that is
| > | the focus of your development, or --libs-only if you are working on C
| > | code. Use --clean to avoid stale package components. Develop individual
| > | functions interactively, but write a script
| > |
| > |   library(MyPackage)
| > |   someFunction()
| > |
| > | so that R -f myscript.R allows you to easily load your package and test
| > | specific functionality in a clean R session.
| >
| > With littler you can do without the one-off script as
| >
| >     $ r -lMyPackage -e'print(someFunction())'
| >
| > runs both commands you would have put into script.  Hence, I often do
| > something like
| >
| >     $ R CMD INSTALL MyPackage/ && r -lMyPackage -e'print(someFunction())'
| 
| What does the small case 'r' do?

It is a scripting front-end to R and useful for e.g. writing scripts with a
so-called shebang line (i.e #!/usr/bin/r in the first line), or for quickly
evaluating command-line expression as I showed you here, or running R scripts
instead of calling R followed by source() --- see the web page at

	http://dirk.eddelbuettel.com/code/littler.html 

for more.

Litter (aka 'r') is similar to Rscript which came a few months later, starts
a little slower but runs on more platforms.

Dirk

-- 
Three out of two people have difficulties with fractions.




More information about the R-help mailing list