[R] getting package version inside .First.lib

Liaw, Andy andy_liaw at merck.com
Thu Jan 27 12:24:45 CET 2005


> From: Roger Bivand
> 
> On Thu, 27 Jan 2005, Prof Brian Ripley wrote:
> 
> > On Thu, 27 Jan 2005, Adrian Baddeley wrote:
> > 
> > > Greetings -
> > >
> > > Is it possible, inside .First.lib,
> > > to find out the version number of the package that is 
> being loaded?
> > >
> > > If only one version of the package has been installed,
> > > we could scan the DESCRIPTION file, something like
> > >
> > > .First.lib <- function(lib, pkg) {
> > >    library.dynam("spatstat", pkg, lib)
> > >    dfile <- system.file("DESCRIPTION", package="spatstat")
> > >    ttt <- scan(dfile, what="", sep="^M", quiet=TRUE)[2]
> > 
> > "\n" not "^M", please, and readLines is better than scan here.
> > 
> > >    vvv <- strsplit(ttt," ")[[1]][2]
> > >    cat("spatstat version number",vvv,"\n")
> > > }
> > >
> > > but even this does not seem very safe (it makes 
> assumptions about the
> > > format of the DESCRIPTION file).
> > 
> > It is better to use read.dcf or the installed description 
> information in 
> > package.rds. Take a look at how library() does this.
> 
> Or even packageDescription() in utils, which uses read.dcf() 
> and should be
> a way of making sure you get the version even if the 
> underlying formatting
> changes.

This is how I do it in randomForest (using .onAttach instead of .First.Lib):

.onAttach <- function(libname, pkgname) {
    RFver <- if (as.numeric(R.version$major) < 2 && 
                 as.numeric(R.version$minor) < 9.0)
      package.description("randomForest")["Version"] else
    packageDescription("randomForest")$Version
    cat(paste("randomForest", RFver), "\n")
    cat("Type rfNews() to see new features/changes/bug fixes.\n")
}

HTH,
Andy
 
> Roger
> 
> > 
> > Post R-2.0.0 you can assume the format is as library uses.
> > 
> > BTW: all installed.packages does is to read the 
> descriptions of all the 
> > packages it finds, and in .First.lib you know the path to 
> your package.
> > 
> > 
> 
> -- 
> Roger Bivand
> Economic Geography Section, Department of Economics, 
> Norwegian School of
> Economics and Business Administration, Breiviksveien 40, 
> N-5045 Bergen,
> Norway. voice: +47 55 95 93 55; fax +47 55 95 93 93
> e-mail: Roger.Bivand at nhh.no
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! 
> http://www.R-project.org/posting-guide.html
> 
>




More information about the R-help mailing list