[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