Thanks for any suggestions, Ales Ziberna
----- Original Message ----- From: "Gabor Grothendieck" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Cc: "Submissions to R help" <[email protected]>
Sent: Friday, April 15, 2005 5:05 PM
Subject: Re: [R] Define "local" function
On 4/15/05, Fernando Saldanha <[EMAIL PROTECTED]> wrote:I discovered a bug in a program I am writing which was due to the program using a global variable within a function.
For example,
myfunc <- function(x) { y}
That is, I made a mistake when defining the function and wrote "y" when I should have written "x".
However, there was a variable y in the global environment and the function "worked" but gave the wrong answer.
I would like to avoid this problem by defining a "local" function. That would mean a function that only accepts as variables those that were defined within its body or were passed as parameters, and would generate an error when I try to define it if I am using an "external" variable. Something like:
> myfunc <- function(x, type = 'local') { y} Error: using external variable
I read the documentation about environments (I still do not understand a lot of it, have been working with R for four days now), and searched the newsgroups, but I could not find the way to do this.
Thanks for any suggestions.
Try this:
y <- 3 f <- function(x) y environment(f) <- NULL f(1)Error in f(1) : Object "y" not found
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
