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