alas, should R not come with an is.defined() function?
?exists a variable may
never have been created, and this is different from a variable existing but holding a NULL. this can be the case in the global environment or in a data frame. > is.null(never.before.seen) Error: objected 'never.before.seen' not found > is.defined(never.before.seen) ## I need this, because I do not want an error: [1] FALSE
exists("never.before.seen") #notice the quotes [1] FALSE
your acs function doesn't really do what I want, either, because { d=data.frame( x=1:4); exists(acs(d$x)) } tells me FALSE . I really need > d <- data.frame( x=1:5, y=1:5 ) > is.defined(d$x) TRUE
with(d, exists("x"))
> is.defined(d$z) FALSE
with(d, exists("z"))
> is.defined(never.before.seen) FALSE
exists("never.before.seen")
> is.defined(never.before.seen$anything) ## if a list does not exist, anything in it does not exist either FALSE
This one I'm a bit confused about. If you're programming a function, then the user either: 1) passes in an object, which is bound to a local variable, and therefore exists. You can do checks on that object to see that it conforms to any constraints you have set. 2) does not pass in the object, in which case you can test for that with ?missing. Is writing your own functions for others to use what you're doing? --Erik ______________________________________________ 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.