Skip to content
Prev 152610 / 398500 Next

History pruning

Ken,

Others have given hints on pruning the history, but are you committed to doing this way?

An alternative would be something more like sink, where when you get to a place that you know you want to start saving the commands you run a function to start saving your commands, then at the end you run a command to stop saving the commands.  One tool for doing this is in the TeachingDemos package, see the help on ?txtStart.

The main goal of this set of functions was more to save a transcript of a session (including graphical output if you use the etxtStart interface and an external tool), but it has a possible side effect of saving the commands issued in a file that could be 'source'd to rerun the set of commands (which seems similar to what you want).  Commands (actually expressions) that result in an error are not included and you can use the txtSkip function to run a command without saving the command in the file (for things like "?plot" that you don't want to rerun).  This may give you what you want, or at least something that needs less editing to get at what you want.

Another option would be to take the source code for the above utilities and add some checks that will decide whether to save the command or not (check if an assignment was made, check if any 'par'ameters were changed, etc.).

Another option if you just want some code to recreate the current plot is to look at the plot2script function in the TeachingDemos package.  It will create a script (put it on the clipboard by default) to recreate the current plot.  It does NOT use the same set of commands that you used to create the plot, but rather lowlevel commands, but it creates a script that you can edit to recreate the plot with just your changes (the current version needs some edits (line wrapping, fixing the box command) before running the script, but it may be another place to start).

Hope this helps,


--
Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
greg.snow at imail.org
(801) 408-8111