[R] Creating a minimal package

Duncan Murdoch dmurdoch at pair.com
Mon Jul 12 15:41:31 CEST 2004


On Mon, 12 Jul 2004 15:14:27 +0200, Uwe Ligges
<ligges at statistik.uni-dortmund.de> wrote :

>Gabor Grothendieck wrote:

>> The objective should be that creating a package is as easy as this:
>> 
>>    f <- function()1; g <- function()2; d <- 3; e <- 4:5
>>    package.skeleton(list=c("f","g","d","e"), name="AnExample")
>>    library(AnExample)
>>    f()
>>    
>> which means that the package needs to be inserted where library will
>> find it. It should not be necessary to have an understanding of this.
>> 
>
>OK, I understand what you are going to do, but in that case you can use 
>dump() into an *.R or save() into an *.RData file and use 
>source()/load() to load it again. I don't see any advantage of a package 
>if you don't want to modify documentation or other stuff in the package.
>Also, you would need the tools to make a binary package from the source 
>package somewhere. package.skeleton() is clearly not intended to be used 
>for that purpose, but to create the template for your source package.
>Hence the default should not be changed.

I agree with both of you on this.  Currently the method that Uwe
describes is a lot easier than creating a package, but I think the
objective should be to make things almost as easy as Gabor describes.

Not completely as easy:  he's missing the step where the package is
installed.  I think we want to keep that (because the distinction
between the source of a package and the installed copy of it is
important), but it should be easier to install a new package than it
is now, especially in Windows.  So I'm suggesting that it would be
nice to be able to do something like this:

 f <- function()1; g <- function()2; d <- 3; e <- 4:5
 package.skeleton(list=c("f","g","d","e"), name="AnExample")
 install.packages("AnExample", build = TRUE)
 library(AnExample)
 f()

but currently install.packages doesn't know how to build, and for most
Windows users, a fairly substantial effort is necessary to obtain all
the tools.

Duncan Murdoch




More information about the R-help mailing list