From iverson at biostat.wisc.edu  Tue Feb  5 21:18:17 2008
From: iverson at biostat.wisc.edu (Erik Iverson)
Date: Tue, 05 Feb 2008 14:18:17 -0600
Subject: [Rd] Error in grid.text after tcltk package loaded
Message-ID: <47A8C489.4050607@biostat.wisc.edu>

Hello -

I am noticing some strange errors when using the grid package, but 
(apparently) only after loading the tcltk package.  The interaction here 
does not make sense to me, and I'm wondering if anyone else can 
reproduce this, or if it is specific to my setup.  Here is my sessionInfo:

sessionInfo()
R version 2.6.2 RC (2008-02-04 r44332)
i686-pc-linux-gnu

locale:
LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_US.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=C

attached base packages:
[1] tcltk     grid      stats     graphics  grDevices utils     datasets
[8] methods   base

This also happens to me in R 2.6.1. I'm running Linux (RHEL 4) on a 
32-bit Intel CPU and using KDE.  These are R versions that I have 
compiled myself.

I try the following in R (started with --vanilla), this is the simplest 
code I have to reproduce the problem on my end.

## Start R Code

library(grid)
library(tcltk)
grid.text("a", x = seq(0,1, by = .001))

## End R Code

The graphic draws to my X11 device, however, when I try to move the X11 
R Graphics Device window with my mouse and 'drop' it somewhere by 
releasing the mouse button, I get errors like the following:

 > Error in grid.Call.graphics("L_text", as.graphicsAnnot(x$label), x$x, 
  : invalid color name
 > Error in grid.Call.graphics("L_text", as.graphicsAnnot(x$label), x$x, 
  : REAL() can only be applied to a 'numeric', not a 'NULL'
 > Error in grid.Call.graphics("L_text", as.graphicsAnnot(x$label), x$x, 
  : VECTOR_ELT() can only be applied to a 'list', not a 'integer'
 > Error in grid.Call.graphics("L_text", as.graphicsAnnot(x$label), x$x, 
  : REAL() can only be applied to a 'numeric', not a 'character'
 > Error in grid.Call.graphics("L_text", as.graphicsAnnot(x$label), x$x, 
  : REAL() can only be applied to a 'numeric', not a 'NULL'
 > Error in grid.Call.graphics("L_text", as.graphicsAnnot(x$label), x$x, 
  : REAL() can only be applied to a 'numeric', not a 'char'
In addition: Warning message:
In grid.Call.graphics("L_text", as.graphicsAnnot(x$label), x$x,  :
   supplied color is not numeric nor character

My traceback always looks like this:
 > traceback()
5: .Call.graphics(fnname, ..., PACKAGE = "grid")
4: grid.Call.graphics("L_text", as.graphicsAnnot(x$label), x$x,
        x$y, resolveHJust(x$just, x$hjust), resolveVJust(x$just,
            x$vjust), x$rot, x$check.overlap)
3: drawDetails.text(x, recording = FALSE)
2: drawDetails(x, recording = FALSE)
1: drawGrob(x)

I can only get these messages to happen after loading the tcltk package, 
using grid.text, with 'many' text strings (happens rarely with 100, 
almost every move with 1000 strings as in my example).

I found just one reference to a similar error message in the archives, 
although not to do with grid. Here's a link:

https://stat.ethz.ch/pipermail/r-devel/2008-January/048117.html

Can anyone else replicate this? Any ideas on what's going on?

Best,
Erik Iverson



[Rd] Error in grid.text after tcltk package loaded
Erik Iverson