From deepayan.sarkar at gmail.com  Fri Apr 27 02:44:07 2007
From: deepayan.sarkar at gmail.com (Deepayan Sarkar)
Date: Thu, 26 Apr 2007 17:44:07 -0700
Subject: [Rd] evaluation in unattached namespace
In-Reply-To: <46314403.2070701@stats.uwo.ca>
References: <eb555e660704261639h531c7c0fk968283b961b0f504@mail.gmail.com>
	<46314403.2070701@stats.uwo.ca>
Message-ID: <eb555e660704261744q4034f4a4lc32b3a2cdf87ea5b@mail.gmail.com>

On 4/26/07, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
> On 4/26/2007 7:39 PM, Deepayan Sarkar wrote:
> > Hi,
> >
> > I recently discovered this buglet in lattice: If lattice is _not_
> > attached, I get
> >
> >> lattice::dotplot(~1:10)
> > Error in eval(expr, envir, enclos) : could not find function "bwplot"
> >
> > This happens because of this:
> >
> >> lattice:::dotplot.formula
> > function (x, data = NULL, panel = "panel.dotplot", ...)
> > {
> >     ocall <- ccall <- match.call()
> >     ccall$data <- data
> >     ccall$panel <- panel
> >     ccall[[1]] <- as.name("bwplot")
> >     ans <- eval.parent(ccall)
> >     ans$call <- ocall
> >     ans
> > }
> > <environment: namespace:lattice>
> >
> > That is, ccall is eval()-ed in the global environment where bwplot is
> > not visible. While this example is somewhat silly, similar things
> > happen when I try to import lattice from another package.
> >
> > Are there any simple alternatives? I tried
> >
> >     ccall[[1]] <- as.name("lattice::bwplot")

Seth suggested

ccall[[1]] <- quote(lattice::bwplot)

which makes more sense and seems to work too.

-Deepayan



[Rd] evaluation in unattached namespace
Deepayan Sarkar