[R] RGui: windows-record and command history

Paul Murrell p.murrell at auckland.ac.nz
Thu Mar 23 22:23:08 CET 2006


Hi


Michael H. Prager wrote:
> 
> on 3/23/2006 2:42 PM Paul Murrell said the following:
> 
>>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
>>  
> 
> 
> 
> For that reason, there could be some benefit in saving desired graphics 
> externally as files -- under Windows, savePlot() can be used -- and 
> starting with a fresh graphics history in each R session.
> 
> I regularly use the R command
> 
>  .SavedPlots <- NULL
> 
> in scripts to get rid of any old history.  This seems to work fine, but 
> of course I would appreciate comments from those more knowledgeable 
> telling me what's wrong with it.


FWIW, my recommendation would be to use R code as the primary storage 
format.  It's useful to have the plot as a PDF or WMF file, but if you 
ever need to change anything, you need the original R code.  Of course, 
this means you need to keep the underlying data, and possibly analysis 
code as well, but you should be doing that anyway.

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




More information about the R-help mailing list