[R] unexpected behavior in bwplot

Deepayan Sarkar deepayan.sarkar at gmail.com
Wed Jul 13 00:04:58 CEST 2005


On 7/12/05, Ritter, Christian C GSMCIL-GSTMS/2
<christian.ritter at shell.com> wrote:
> R-2.1.1 on windows XP
> 
> I just noticed something unpleasant when using bwplot (from lattice).
> 
> In order to satisfy a wish from a client, I needed to produce sets of boxplots conditioned by another factor. My client didn't like the look of the boxplots (by default, they have a star to mark the median, instead of the commonly used line). I told him "no problem" dumped panel.bwplot, added a line at the median, commented out the star, and sourced it back in as panel.mybwplot.
> 
> Then I tried to call it with bwplot(...,panel="panel.mybwplot"), but this hit two roadblocks. The first one was relatively easy: it didn't find the function current.viewport (from grid). Explicitely loading the package grid was sufficient (current.viewport is exported there). But then it stopped on chooseFace. It was not obvious to find where chooseFace was (in lattice, but not as an exported function in the namespace) and how to make it callable. I finally clobbered it by defining chooseFace<-lattice:::chooseFace. This certainly worked but is very inelegant. Could anyone point me to cleaner ways to do this?
> 
> On the other hand, I would have preferred if panel.bwplot would not use functions not exported to the outer namespace (or if lattice would make sure that all functions called in the standard panel functions were exported to the outer namespace). It is very common that we have to slightly modify standard panel functions and it is quite annoying having to chase for evenually hidden functions called by them. Comments?
> 

I agree that this is a problem, but I don't know what a good solution
is. I can certainly export more functions (writing documentation is
the only hard work). However, chooseFace is a hack which definitely
isn't worth exporting.

I think the best solution in this case is for me to rewrite
panel.bwplot using lattice wrappers line panel.points and panel.lines
(and panel.rect, which doesn't exist yet). That may take a little
time. Please let me know of other similar situations if you encounter
them.

Deepayan




More information about the R-help mailing list