There was a reason for that line, as running 'make check' with your modification would have shown you. Sometimes naresid() is called with x=NULL. AFAICS replacing the test with is.null(x) suffices, and I'm testing that in R-devel. If nothing else comes up I will port it to R-patched later.

Note that R's own code does not AFAIR call these functions when predicting with 'newdata', and a fit with all cases omitted would not be very interesting so it is unsurprising no one noticed for >8 years.

On Fri, 14 Jan 2011, Simon Wood wrote:

 x <- NA
 na.act <- na.action(na.exclude(x))
 y <- rep(0,0)
 naresid(na.act,y)

... currently produces the result...
 numeric(0)

... whereas the documentation might lead you to expect
 NA

The behaviour is caused by the line
 if (length(x) == 0L) return(x)

in `stats:::naresid.exclude'. Removing this line results in the behaviour I'd
expected in the above example (and in a test example where `x' is a zero row
matrix).

Is the coded behaviour necessary for some reason? Could it be changed (so that
my example produces NA)? The reason I ask is that I use `napredict' in
mgcv:predict.gam, and someone complained that if he predicts using newdata
that is all NA, then he doesn't get what he expected (he has a pretty good
reason for doing this). Part of the problem with predict.gam in this case was
my code, but once I fixed that I ran up against the above problem.

Actually, I just checked the source code and the line of naresid.exclude that
causes the problem already has this comment after it....
 # << FIXME? -- reconstructing all NA object
... so I guess I'm really asking if there is any chance of fixing this soon,
or whether I should just code up a work-around for predict.gam?

Simon

--
Simon Wood, Mathematical Sciences, University of Bath, Bath, BA2 7AY UK
+44 1225 386603  www.maths.bath.ac.uk/~sw283

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


--
Brian D. Ripley,                  rip...@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to