[Rd] introspective capabilities

Duncan Murdoch murdoch.duncan at gmail.com
Wed Sep 1 15:59:22 CEST 2010


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



More information about the R-devel mailing list