[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