introspective capabilities
On 01/09/2010 9:27 AM, Christophe Rhodes wrote:
Duncan Murdoch <murdoch.duncan at gmail.com> writes:
On 27/08/2010 7:52 AM, Christophe Rhodes wrote:
Hi, Is there any way, from R code, to perform introspection as to where certain names acquired their values?
There's the "keep.source" option to source() and the optional
"srcfile" argument to parse() that tell R to keep this information.
If you haven't changed the default
getOption("keep.source") from TRUE, then source will default to
keeping it, and you can find the original location of a function
definition for function f by looking in attr(body(f), "srcref"). See
?srcref for the format; there aren't a lot of user-level utility
functions for working with this.
Thanks. This is enough for my immediate purposes: supporting single-keystroke (M-.) jumping to source locations of functions.
For packages, the relevant option is "keep.source.pkgs" at the time the package is installed.
Thank you. Is there anything like a cross-referencing database within R? The functionality I'm looking for here is to be able to name a function, and come back with a list of functions (or srcrefs) where that name is used. (I realise that this is not in general possible; just the lexically-apparent cases would be enough).
There is no such database already built, but I imagine the functions in the codetools package could construct one. Duncan Murdoch