Eli -
   I think you're looking for missing():

tst = function(a,b=1)
+          if(missing(a))print("You must provide a") else print(a)
tst()
[1] "You must provide a"
tst(7)
[1] 7

                                        - Phil Spector
                                         Statistical Computing Facility
                                         Department of Statistics
                                         UC Berkeley
                                         spec...@stat.berkeley.edu



On Thu, 7 Oct 2010, Eli Holmes wrote:

I'm trying to test for the existence of an object within a function,
but despite searching the help files and R-list, I can't figure out
how to do it.

Here is some test code:

#-------------------------
a=1 #now I have a in the global environment

tst <- function(a,b=1) {
# but a is not in the local function environment
print(exists("a", inherits=FALSE)) #This is how I think I should be
able to test if it is in the local function environment
print(a)
}
tst()
#----------------------

#Here's the output
[1] TRUE
Error in print(a) : argument "a" is missing, with no default

It says TRUE, even though I specified inherits=FALSE and "a" is not in
the function environment.  I've tried to pass in where and envir
arguments to exists() but I haven't been able to solve the problem.

Thanks in advance.

______________________________________________
R-help@r-project.org 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.


______________________________________________
R-help@r-project.org 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.

Reply via email to