[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