On Sat, May 23, 2009 at 4:55 PM, Robert Gentleman <rgent...@fhcrc.org> wrote: > Hi Kynn, > > > Kynn Jones wrote: >> Suppose function foo calls function bar. Is there any way in which >> bar can find out the name of the function that called it, "foo"? > > essentially yes. You can find out about the call stack by using sys.calls and > sys.parents etc. The man page plus additional manuals should be sufficient, > but > let us know if there are things that are not clear.
Thanks a lot! That was very helpful. This is the best I was able to come up with: bar <- function() { caller <- sub("\\(.*", "", rev(sys.calls())[[2]]) cat(sprintf("bar: i was called by \"%s\"\n", caller)) } foo <- function() bar() > foo() bar: i was called by "foo" > So it works, but I'm a n00b with R. If there's a less labored way to achieve this, please let me know. And thanks again for your response. It was very instructive. KJ ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel