[R] RGui: windows-record and command history

Peter Ehlers ehlers at math.ucalgary.ca
Fri Mar 24 01:50:23 CET 2006



Paul Murrell wrote:

> Hi
> 
> 
> 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.
>>>>>>
>>>>>>options(graphics.record=TRUE)
>>>>>>
>>>>>>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
>>>>>>pages.
>>>>>
>>>>>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.
> 
> Paul

Paul,
If I read your comments correctly, the problem with manipulating the
graph history is with saved histories across sessions/versions. Is
there any reason not to manipulate it *within* a session? I never
save plots for re-use in R. Re-running code is usually best for me.
But I would find it handy to fiddle with the display list in a
session.

Peter Ehlers




More information about the R-help mailing list