[R] Regression line limited by the rage of values
Andreas Svensson
andreas.svensson at bio.ntnu.no
Wed May 24 18:51:42 CEST 2006
Hi
In R, using plot(x,y) followed by abline(lm(y~x)) produces a graph
with a regression line spanning the whole plot . This means that the
line extends beyond the swarm of data points to the defined of default
plot region. With par(xpd=T) it will span the entire figure region. But
how can I limit a regression line to the data range, i.e between
(xmin,ymin) and (xmax,ymax)?
Sorry for not knowing the lingo here. If you don't understand the
question, please run the following script:
x1<-c(1,2,3,4)
x2<-c(5,6,7,8)
y1<-c(2,4,5,8)
y2<-c(10,11,12,16)
plot(x1,y1,xlim=c(0,10),ylim=c(0,20),col="blue")
points(x2,y2,col="red")
abline(lm(y1~x1),col="blue")
abline(lm(y2~x2),col="red")
The resulting plot isn't very informative. There is no overlap in the
two groups of data, yet the two ablines overlap.
I instead want the blue line to go from (1,2) to (4,8) and the red line
from (5,10) to (8,16).
So, how can I constrain the abline to the relevant region, i.e stop
abline from extrapolating beyond the actual range of data.
Or should I use a function line 'lines' to do this?
Cheers
Andres
More information about the R-help
mailing list