[R] Putting an object in to a function that calls the current function
murdoch at stats.uwo.ca
Wed Jan 4 15:26:27 CET 2006
On 1/4/2006 9:14 AM, Ales Ziberna wrote:
> I would like to put an object in to a function that calls the current
> I thought the answer will be clear to me after reading the help files:
> However it is not.
> Here is an example I thought should work, however it dose not exactly:
> f() #I want to get "ok"
> a #I do not want "a" in global enviorment, so here I should get
> #Error: Object "a" not found
> ff<-function()f() #here I also want to get "ok" - it should not matter if
> the parent fuction has any parents
> Thank you in advance for suggestions!
That's not a good idea. Why would you want to do something like that?
That out of the way, here's a function that does it:
The difference between pos=sys.parent() and env=parent.frame() is that
the pos is interpreted as a position in the search list (see ?assign),
while parent.frame() gives you the environment from the stack,
equivalent to sys.frame(sys.parent()).
In R you're almost certainly better off working directly with
environments, rather than going through integer indexing the way you
(used to?) have to do in S-PLUS.
Did I mention that messing with the environment of your caller is a bad
idea? It's not yours, don't touch it.
More information about the R-help