[Rd] plot.lm mislabels points with na.exclude (PR#3750)
maechler at stat.math.ethz.ch
maechler at stat.math.ethz.ch
Fri Aug 15 16:55:54 MEST 2003
>>>>> "AndyL" == andy liaw <andy_liaw at merck.com>
>>>>> on Fri, 15 Aug 2003 04:08:59 +0200 (MET DST) writes:
AndyL> Here's one possible fix (may not be very efficient).
AndyL> Change lines 82-83 in $R_HOME/src/base/R/plot.lm.R to the following:
AndyL> if (id.n > 0) {
AndyL> qqx <- rep(NA, n)
AndyL> qqy <- rep(NA, n)
AndyL> qqx[!is.na(rs)] <- qq$x
AndyL> qqy[!is.na(rs)] <- qq$y
AndyL> text.id(qqx[show.rs], qqy[show.rs], show.rs, adj.x = TRUE)
AndyL> }
Thank you, Andy.
I digged a bit further, however.
I'd argue the bug is in qqnorm(): It shouldn't drop NA's in its
result, list(x= ., y=.).
R-devel will contain a fixed qqnorm.default() function
which will also solve this plot.lm() behavior.
Martin Maechler <maechler at stat.math.ethz.ch> http://stat.ethz.ch/~maechler/
Seminar fuer Statistik, ETH-Zentrum LEO C16 Leonhardstr. 27
ETH (Federal Inst. Technology) 8092 Zurich SWITZERLAND
phone: x-41-1-632-3408 fax: ...-1228 <><
>> -----Original Message-----
>> From: richard_raubertas at merck.com
>> Sent: Thursday, August 14, 2003 6:38 PM
>> To: r-devel at stat.math.ethz.ch
>> Cc: R-bugs at biostat.ku.dk
>> Subject: [Rd] plot.lm mislabels points with na.exclude (PR#3750)
>>
>>
>> R 1.7.1 on Windows XP
>>
>> The "normal Q-Q plot" produced by plot.lm() mislabels points
>> when the model is fitted using na.action=na.exclude. Example:
>>
>> x <- 1:50
>> y <- x + rnorm(50)
>> y[c(5,10,15)] <- NA # insert some NA's
>> y[40] <- 50 # add an outlier
>> plot(lm(y ~ x, na.action=na.omit)) # outlier correctly
>> labeled in all
>> # four plots
>> plot(lm(y ~ x, na.action=na.exclude)) # labels attached to
>> wrong points
>> # in the QQ plot (only)
>>
>>
>> Rich Raubertas
>> Biometrics Research
>> Merck & Co.
More information about the R-devel
mailing list