[R] lm without error

ivo welch ivo.welch at gmail.com
Fri Jun 11 17:28:04 CEST 2010

thanks, everybody.

joris---let me disagree with you, please.  there are so many
possibilities of how lm.fit could fail that by the time I am done with
pre-checking, I may as well write my own lm() routine.

eric--let me disagree with you, too.  I did know about "?try" and it
is useful when the dependent variable is just one vector---except if
you have thousands of dependent variables (to run thousands of
regressions with one lm() statement).  if an error is thrown, then you
then have to determine which of the columns actually was responsible
for the error, and then you have to restart it.  if you want a minimal
example to explain this dilemma better:

  y= matrix(rnorm(1000), nrow=10, ncol=100)
  y[,28]= rep(NA, 10)
  lm( y ~ x )
       ## now what do you do?  hunt for which column was responsible?

gabor---this seems to be exactly what I wanted to get---coefficients
without triggering an lm.fit() error.  thanks (yet again).  in my

   coefs= qr.coef( qr(x), y )

works great.



On Fri, Jun 11, 2010 at 10:46 AM, Erik Iverson <eriki at ccbr.umn.edu> wrote:
> 1) please use reproducible, minimal examples when discussing behavior of R.
> 2) perhaps ?try could help.
> ivo welch wrote:
>> this is not an important question, but I wonder why lm returns an
>> error, and whether this can be shut off.  it would seem to me that
>> returning NA's would make more sense in some cases---after all, the
>> problem is clearly that coefficients cannot be computed.
>> I know that I can trap the lm.fit() error---although I have always
>> found this to be quite inconvenient---and this is easy if I have only
>> one regression in my lm() statement.
>> but, let's presume I have a matrix with a few thousand dependent y
>> variables (and the same independent X variables).  Let's presume one
>> of the y variables contains only NA's.  I believe I now cannot use
>> lm(y ~ X), because one of the regressions will throw the lm.fit
>> exception.  (all the other y vectors should have worked.)
>> or is there a way to get lm() to work in such situations?
>> /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.

More information about the R-help mailing list