on 07/30/2008 01:12 PM Ken Williams wrote:
Hi,

I find that a typical workflow for me looks something like this:

1) import some data from files
2) mess around with the data for a while
3) mess around with plotting for a while
4) get a plot or analysis that looks good
5) go back through my history to make a list of the shortest command
sequence to recreate the plot or analysis
6) send out that sequence to colleagues, along with the generated plots
or analysis output

I wonder if there are any tools people have developed to help with step
5.  Typically I do something like this:

5a) save my entire history to a text file
5b) open it up in Emacs
5c) prune any lines that don't have assignment operators
5d) prune any plotting commands that were superseded by later plots

and then start on other more subtle stuff like pruning assignments that
were later overwritten, unless the later assignments have variable
overlap between the LHS and the RHS.  Then I just start eyeballing it.

Would any deeper introspection of the history expressions be feasible,
e.g. detecting statements that have no side effects, dead ends, etc.

The holy grail would be something like "show me all the statements that
contributed to the current plot" or the like.

Thanks.

I (and many others) use ESS (Emacs Speaks Statistics), in which case, I have an R source buffer in the upper frame and an R session in the lower frame.

In my particular case, I also happen to use ECB (Emacs Code Browser) which also has a left hand column spanning the full vertical length, to provide access to other things (file browser, R function and data objects, etc.). It also helps integrate Sweave/LaTeX functionality to further centralize things and increase productivity. I have also tied in Subversion functionality to enable me to engage in version control of my code and other key files.

I do all of my editing in the upper frame and use the built-in ESS functions to submit the code to the R session. This also provides for code syntax highlighting, which makes it easier to visualize code as well as to check for things like matching parens/braces, etc.

In this way, your working code (including comments) is kept functionally intact in the upper frame and you can edit and use it without having to scroll through a long history of commands (which is still there if you need it).

More information here:

  http://ess.r-project.org/

HTH,

Marc Schwartz

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to