[Rd] Two submitted packages
Prof Brian Ripley
ripley at stats.ox.ac.uk
Tue Sep 5 23:15:37 CEST 2006
On Mon, 4 Sep 2006, Richard M. Heiberger wrote:
> ## This example runs in R 2.3.1 and does not run in R 2.4.1. I am
There is no '2.4.1', and your R-devel is not very recent. It looks as if
R-devel has detected an error of yours that previously went undetected.
You set cpv$clip <- "off" and the internal code assumes that it is logical
(as the message says). I can't find any documentation to support your
code: if there is some please report it to the maintainer of grid (Paul
Murrell).
> ## raising it here for two questions: one on how to debug functions
> ## inside a namespace, the other on how to control clipping.
>
> tmp <- data.frame(x=1:5, y=1:5, a=factor(c(1,1,1,1,1), levels=1:4))
> xyplot(y ~ x,
> data=tmp, ylim=c(1.5,4.5),
> panel=function(x,y, ...) {
> cpv <- current.viewport()
> cpv$clip <- "off"
> pushViewport(cpv)
> panel.xyplot(x, y, ...)
> popViewport()
> })
>
> ## R version 2.4.0 Under development (unstable) (2006-08-14 r38872)
> ## gives the error message
> Error in grid.Call.graphics("L_setviewport", pvp, TRUE) :
> LOGICAL() can only be applied to a 'logical', not a 'character'
> >
>
> ## Question 1. How do I place a trace() on grid.Call.graphics to make
> ## it stop and give me a traceback. I tried many variations of the
> ## command
> ## trace(grid:::grid.Call.graphics, exit=recover,
> ## where=environment(grid:::grid.Call.graphics))
> ## None of them trapped the error and let me trace it. What is the
> ## correct incantation?
Not sure why you want to do that, as traceback() works here.
> traceback(max.lines=3)
10: .Call.graphics(fnname, ..., PACKAGE = "grid")
9: grid.Call.graphics("L_setviewport", pvp, TRUE)
8: push.vp.viewport(X[[1]], ...)
7: FUN(X[[1]], ...)
6: lapply(vps, push.vp, recording)
5: pushViewport(cpv)
4: panel(x = c(1, 2, 3, 4, 5), y = c(1, 2, 3, 4, 5), packet.number = 1,
panel.number = 1)
3: do.call("panel", pargs)
2: print.trellis(list(formula = y ~ x, as.table = FALSE, aspect.fill =
TRUE,
legend = NULL, panel = function (x, y, ...)
{
...
1: print(list(formula = y ~ x, as.table = FALSE, aspect.fill = TRUE,
legend = NULL, panel = function (x, y, ...)
{
...
as does options(error=recover). What does a namespace have to do with
this?
--
Brian D. Ripley, ripley at stats.ox.ac.uk
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
More information about the R-devel
mailing list