-----Original Message-----
From: Roger D. Peng [mailto:rpeng@stat.ucla.edu]
Sent: Thursday, May 22, 2003 2:40 PM
To: Warnes, Gregory R
Cc: 'R-devel@stat.math.ethz.ch'
Subject: Re: [Rd] How to avoid function masking
I believe recent R-devel has a `pos' argument to library() which lets
you attach a package in a certain position. Can't think of anything
else though.
-roger
Warnes, Gregory R wrote:
Hi All,
I've been working on updating the 'genetics' package. As a
the upgrade, .First.lib() looks like:
.First.lib <- function(libname, pkgname)
{
if (!require(combinat))
warning("Unable to load 'combinat' library. Function
`diseq.ci' will fail.")
require(gregmisc)
genotype <- get("genotype",pos="package:genetics")
}
the First.lib of the "gregmisc" package in turn does
require("MASS")
which defines a data set "genotype" which masks the
my genetics library.
Is there any clean way to load libraries in .First.lib
kind of masking? Ideally, there would be something like
require("gregmisc", top=FALSE)
which would load the library (and any libraries it loads)
position rather than the second position of the search path
in the first slot)? Actually, does it make sense in
top=FALSE be the default behavior when loading packages
avoid masking of this type?
For the moment I'm doing :
.First.lib <- function(libname, pkgname)
{
if (!require(combinat))
warning("Unable to load 'combinat' library. Function
`diseq.ci' will fail.")
require(gregmisc)
assign("genotype", get("genotype",pos="package:genetics"),
pos=.GlobalEnv )
}
but this is a hack and doesn't solve the general problem.
-Greg
LEGAL NOTICE\ Unless expressly stated otherwise, this
message is... {{dropped}}