[R] programming questions
Erik Iverson
eriki at ccbr.umn.edu
Wed Nov 3 20:40:50 CET 2010
> 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
More information about the R-help
mailing list