From wdunlap at tibco.com  Wed Jan 19 23:58:36 2011
From: wdunlap at tibco.com (William Dunlap)
Date: Wed, 19 Jan 2011 14:58:36 -0800
Subject: [Rd] buglet in weighted.residuals(mlmObject)
Message-ID: <77EB52C6DD32BA4D87471DCD70C8D70003D65407@NA-PA-VBE03.na.tibco.com>

When weighted.residuals() is given a fitted model
object with several responses (class mlm) and some
zero weights it returns a vector instead of a matrix.
It looks like it is doing
   resids[ weights != 0 ]
instead of
   resids[ weights != 0, , drop=FALSE] 
in the multi-response case.

E.g.,

> d4 <- data.frame(y1=1:4, y2=2^(0:3), wt=log(1:4),
fac=LETTERS[c(1,1,2,2)])
> fit <- lm(data=d4, cbind(y1,y2)~fac, weights=wt)
> weighted.residuals(fit) # expect 3x2 matrix
[1]  1.407294e-16 -5.847465e-01  5.205496e-01  5.950102e-16
-2.338986e+00
[6]  2.082198e+00
> weighted.residuals(fit, drop0=FALSE)
             y1            y2
1  0.000000e+00  0.000000e+00
2  1.407294e-16  5.950102e-16
3 -5.847465e-01 -2.338986e+00
4  5.205496e-01  2.082198e+00

This is in R 2.12.0.  I haven't upgraded yet.

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com 



[Rd] buglet in weighted.residuals(mlmObject)
William Dunlap