[R] savehistory not working properly in R?

Paul Y. Peng ypeng at math.mun.ca
Thu May 15 19:21:45 CEST 2003


Prof Brian Ripley wrote:
> 
> On Wed, 14 May 2003, Paul Y. Peng wrote:
> 
> > I have a .RData which contains .Last object as follows:
> >
> >       .Last <- function ()
> >       {
> >               savehistory(file = ".Rhistory")
> >       }
> >
> > In this directory, if I issue the following command
> >
> >       Rterm --save < mycmds.q
> >
> > to execute commands in mycmds.q and to save results in .RData,
> > I got the following error message towards the end of the execution:
> >
> >       Error in savehistory(file) : savehistory can only be used
> >       in Rgui and Rterm
> >       Execution halted
> >
> > I lost the results of the commands too. The documentation of
> > "savehistory" says that it only works with Rgui and Rterm. Why
> > doesn't it work in this case? Is it because it is in a batch mode
> > rather than in an interactive mode?
> 
> Yes.  The history is associated with the command-line editing: what you
> are doing is considered to be BATCH use.
> >
> > Is it possible to prevent savehistory from printing the error message
> > so that the session can be finished properly? I hope that I did not
> > miss anything obvious. Otherwise, please forgive me. Thanks.
> 
> The real problem is in your .Last.  You could do
> 
> .Last <- function ()
> {
>     if(interactive()) savehistory(file = ".Rhistory")
> }

Many thanks. As always, your suggestion works. I should have thought
about interactive().

> or use try():  if you are worried about not saving .RData you really
> should protect the commands in .Last (see its help page for warnings).

I will give try() a real try. It seems to be quite useful.

> I'll see if the documentation can be clarified.

Why does R save its command history only when one saves the data
image of the session? Is this a feature? Even though .Last can do
this, would it be more convenient if R can do this automatically?
Logically, I feel the command history should be treated separately.

Paul.




More information about the R-help mailing list