On Thu, 27 Jan 2005, Liaw, Andy wrote:

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")
}

Please don't use functions from utils in such places without explicitly loading them from utils unless your package has an explicit dependence on utils (and randomForest does not).


There was a good reason why I suggested what I did: you don't need the utils namespace for this.


-- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to