[R] RGui: windows-record and command history

Duncan Murdoch murdoch at stats.uwo.ca
Thu Mar 23 18:36:03 CET 2006

On 3/23/2006 10:34 AM, Peter Ehlers wrote:
> Duncan Murdoch 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.
> [snip]
> Duncan,
> This may be asking too much, but would it be possible to consider
> implementing selective graph removal from the graph history?
> I use graph.record=TRUE frequently for comparing graphs, but often
> find that I'd like to kill one of the graphs while keeping others
> in memory.

That's probably not too hard to do in R code.  You just need to look at 
the source in src/library/grDevices/R/windows/windows.R for the 
print.SavedPlots method, and maybe the C level code in 
src/library/grDevices/src/devWindows.c for a bit more help on the 
interpretation of the .SavedPlots object, and then it should be fairly 
straightforward to write a function that deletes an entry in the 
history.  (It's a list with 5 components, the first 4 of which describe 
the current state and what the user is looking at, and the last of which 
is a list containing the actual recorded plots.)

Duncan Murdoch

More information about the R-help mailing list