[R] RGui: windows-record and command history

Paul Murrell p.murrell at auckland.ac.nz
Thu Mar 23 20:42:55 CET 2006


Duncan Murdoch wrote:
> On 3/23/2006 10:46 AM, Gabor Grothendieck wrote:
>>On 3/23/06, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
>>>On 3/23/2006 10:29 AM, Gabor Grothendieck wrote:
>>>>On 3/23/06, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
>>>>>On 3/23/2006 7:35 AM, Thomas Steiner wrote:
>>>>>>a) How can I set the recording of all windows()-history forever to
>>>>>>"true"? I want something like windows(record = TRUE) but not just for
>>>>>>the window that opens then, but for all windows I will open ever.
>>>>>will make that happen for the rest of the session.  To really make it
>>>>>happen forever, you need to put this line in your Rprofile (see
>>>>>?Rprofile for where that comes from).
>>>>>Watch out though:  the graphics history is stored in your current
>>>>>workspace in memory, and it can get big.  You might find you're running
>>>>>out of memory if you store everything, and you'll find your .RData files
>>>>>quite large if you save your workspace.
>>>>>On my todo list (but not for 2.3.0) is the possibility of setting a
>>>>>default history length, perhaps defaulting to saving the last 2 or 3
>>>>Would it be feasible to have history on disk or perhaps the last
>>>>m in memory and the last n (possibly Inf) on disk?
>>>The history is just another R object.  Saving big R objects on disk
>>>might be desirable, but it would be a big change, so I'd call it
>>>infeasible.  I wouldn't want to get into special-casing this particular
>>>R object:  that way lies madness.
>>>However, since it is just an R object, it's available for R code to work
>>>with, so someone who was interested in doing this could write a
>>>contributed package that did it.
>>Are there R-level facilities to manipulate the history, not
>>just the top?
> Sure, it's a regular R object. You will need to read the source to know 
> how to interpret it, and since it's undocumented there's a risk of 
> changes in future R versions, but it's not very complicated.  See my 
> message to Peter.

Be careful with this.  The objects that are recorded on the display list 
are calls to graphics functions PLUS state information in a raw binary 
format.  The display list was originally intended for reuse within the 
same R session (for redrawing the screen).  If you try to save it and 
use it between sessions or (worse) between versions of R you could run 
into some nasty problems.  For example, what if the graphics function 
interface has changed?  what if the raw binary state information format 
has changed?  what if the required packages are not installed?   At 
best, your saved object produces errors;  at worst it becomes completely 
useless and is unrecoverable.

Dr Paul Murrell
Department of Statistics
The University of Auckland
Private Bag 92019
New Zealand
64 9 3737599 x85392
paul at stat.auckland.ac.nz

More information about the R-help mailing list