thmsfuller066 at gmail.com
2010-May-14 14:14 UTC
[Rd] Restrict access to variables in parent environment
Hello All, By default, a reference of a variable in a function cause R to look for the variable in the parent environment if it is not available in the current environment (without generating any errors or warnings). I'm wondering if there is a way to revert this behaviors, such that it will not look for the parent environment and will generate an error if the variable is not available in the current environment. Is this tuning has to be done at the C level? -- Tom
Hadley Wickham
2010-May-14 14:20 UTC
[Rd] Restrict access to variables in parent environment
> Hello All, > > By default, a reference of a variable in a function cause R to look > for the variable in the parent environment if it is not available in > the current environment (without generating any errors or warnings). > I'm wondering if there is a way to revert this behaviors, such that it > will not look for the parent environment and will generate an error if > the variable is not available in the current environment. Is this > tuning has to be done at the C level?Try this: b <- 1 f <- function(a) { b } environment(f) <- baseenv() f() Hadley -- Assistant Professor / Dobelman Family Junior Chair Department of Statistics / Rice University http://had.co.nz/
Duncan Murdoch
2010-May-14 17:53 UTC
[Rd] Restrict access to variables in parent environment
On 14/05/2010 10:14 AM, thmsfuller066 at gmail.com wrote:> Hello All, > > By default, a reference of a variable in a function cause R to look > for the variable in the parent environment if it is not available in > the current environment (without generating any errors or warnings). > I'm wondering if there is a way to revert this behaviors, such that it > will not look for the parent environment and will generate an error if > the variable is not available in the current environment. Is this > tuning has to be done at the C level?You could do that by setting the environment of the function to emptyenv(), but it will not be pretty. Remember that everything in R is an object, so you won't have access to the base level objects like +, or mean, or any other function. Duncan Murdoch
Apparently Analagous Threads
- How to define a function (with '<-') that has two arguments?
- assigning to list element within target environment
- Return function from function with minimal environment
- lm() takes weights from formula environment
- lm() takes weights from formula environment