Hello,
I apologise in advance for this question; I'm sure it is answered in
the documentation or this mailing list many times, however the answer
has eluded me.
I'm trying to write a function where I don't want external variables
to be scoped in from the parent environment. Given this function:
test_func = function() {
if (exists("kat") == FALSE) {
print("kat is undefined")
} else {
print(kat)
}
}
If I did this:
> kat = 12
> test_func()
I'd like the result to be the error, but now it's 12 (which is of
course correct according to the documentation).
So there are two questions:
1) How can I disregard all variables from the parent environment
within a function? (Although from what I've read on the mailing lists
this isn't really what I want.)
Apparently
environment(test_func) = NULL
is defunct, and what I thought was its replacement
environment(test_func) = emptyenv()
doesn't seem to be.
2) How can I "undefine" a variable, perhaps just within the context
of my function. I'm hoping to find some line that I can put at the
start of my function above so that the result would be:
> kat = 12
> test_func()
[1] "kat is undefined"
> kat
[1] 12
Thanks in advance for any help!
Cheers,
Demitri
______________________________________________
[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
and provide commented, minimal, self-contained, reproducible code.