quick programming questions. I want to "turn on" more errors. there
are two traps I occasionally fall into.
* I wonder why R thinks that a variable is always defined in a data frame.
> is.defined(d)
[1] FALSE
> d= data.frame( x=1:5, y=1:5 )
> is.defined(d$z)
[1] TRUE
> is.defined(nonexisting$garbage)
[1] TRUE
this is a bit unfortunate for me, because subsequent errors become
less clear. right now, I need to do '(is.defined(d) and
!is.null(d$z))' to check that my function inputs are valid. It would
be nicer if one could just write "if (is.defined(d$z)".
* is there a way to turn off automatic recycling? I would rather get
an error than unexpected recycling. I can force recycling with rep()
when I need to.
regards,
/iaw
----
Ivo Welch (ivo.welch at brown.edu, ivo.welch at gmail.com)
ivo welch wrote:> quick programming questions. I want to "turn on" more errors. there > are two traps I occasionally fall into. > > * I wonder why R thinks that a variable is always defined in a data frame. > > > is.defined(d) > [1] FALSE > > d= data.frame( x=1:5, y=1:5 ) > > is.defined(d$z) > [1] TRUE > > is.defined(nonexisting$garbage) > [1] TRUEWhich package/version of R is the 'is.defined' function in? I don't seem to have it here on 2.11.1, which I know is not the latest version of R. What does 'defined' mean?> > this is a bit unfortunate for me, because subsequent errors become > less clear. right now, I need to do '(is.defined(d) and > !is.null(d$z))' to check that my function inputs are valid. It would > be nicer if one could just write "if (is.defined(d$z)"."z" %in% names(d) ?> > * is there a way to turn off automatic recycling? I would rather get > an error than unexpected recycling. I can force recycling with rep() > when I need to. > > regards, > > /iaw > > ---- > Ivo Welch (ivo.welch at brown.edu, ivo.welch at gmail.com) > > ______________________________________________ > R-help at 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.
On 03/11/2010 2:05 PM, ivo welch wrote:> quick programming questions. I want to "turn on" more errors. there > are two traps I occasionally fall into. > > * I wonder why R thinks that a variable is always defined in a data frame. > > > is.defined(d) > [1] FALSE > > d= data.frame( x=1:5, y=1:5 ) > > is.defined(d$z) > [1] TRUE > > is.defined(nonexisting$garbage) > [1] TRUE > > this is a bit unfortunate for me, because subsequent errors become > less clear. right now, I need to do '(is.defined(d) and > !is.null(d$z))' to check that my function inputs are valid. It would > be nicer if one could just write "if (is.defined(d$z)". > > * is there a way to turn off automatic recycling? I would rather get > an error than unexpected recycling. I can force recycling with rep() > when I need to.Where did you find the is.defined() function? It's not part of R. The R function to do that is exists(). Duncan Murdoch