Hello all: I have a function that writes a fairly elaborate report based on some survey data. For documentation and bookkeeping purposes, I'd like to write out in the report the function call that produced the report, or at least enough information to help me recreate the steps that led to that report. I've been generating all the reports with scripts, in order to be able to recreate the steps, but apart from the file name, I don't yet have a way to match the report to the script that created it. Can anyone suggest easy ways to do this? From within a function, is the function call text available somehow, or the names of the arguments used in the function invocation? Many thanks, -tom -- ------------------------ tomfool at as220 dot org http://sgouros.com http://whatcheer.net
If what you mean is that you have a file, test.R, of R commands and you are using source("test.R") and you wish to discover the name "test.R" without hard coding it in your file, then place this in test.R: ofile <- parent.frame(2)$ofile and ofile will be set to "test.R". Note that the line shown should not be within a function or other local environment within the file but directly at top level. This is hack which may need to be modified if the internals of the source command change. On Dec 2, 2007 6:24 PM, Tom Sgouros <tomfool at as220.org> wrote:> > Hello all: > > I have a function that writes a fairly elaborate report based on some > survey data. For documentation and bookkeeping purposes, I'd like to > write out in the report the function call that produced the report, or > at least enough information to help me recreate the steps that led to > that report. I've been generating all the reports with scripts, in > order to be able to recreate the steps, but apart from the file name, I > don't yet have a way to match the report to the script that created it. > > Can anyone suggest easy ways to do this? From within a function, is the > function call text available somehow, or the names of the arguments used > in the function invocation? > > Many thanks, > > -tom > > > -- > ------------------------ > tomfool at as220 dot org > http://sgouros.com > http://whatcheer.net > > ______________________________________________ > R-help at 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. >
On 12/2/2007 6:24 PM, Tom Sgouros wrote:> Hello all: > > I have a function that writes a fairly elaborate report based on some > survey data. For documentation and bookkeeping purposes, I'd like to > write out in the report the function call that produced the report, or > at least enough information to help me recreate the steps that led to > that report. I've been generating all the reports with scripts, in > order to be able to recreate the steps, but apart from the file name, I > don't yet have a way to match the report to the script that created it. > > Can anyone suggest easy ways to do this? From within a function, is the > function call text available somehow, or the names of the arguments used > in the function invocation?I think Gabor has answered your question directly, but another approach to solve the same underlying problem might be to work with Sweave. (Or ODFweave, etc.) These allow you to mix R code right into a document that explains the reasoning and includes both the input and output of the script. Duncan Murdoch
Duncan Murdoch <murdoch at stats.uwo.ca> wrote:> I think Gabor has answered your question directly, but another > approach to solve the same underlying problem might be to work with > Sweave. (Or ODFweave, etc.)Thank you, that is pretty marvelous. I will use it next time around. -tom -- ------------------------ tomfool at as220 dot org http://sgouros.com http://whatcheer.net