Try this version of your function and then think about it

tst <- function () {
attach (attitude)
x <- rating
y <- learning
detach (attitude)
plot (x, y)
abline(v=mean(x))
abline(h=mean(y))
abline (lm(y~x))
cc <- coef(lm(x ~ y))
abline (-cc[1]/cc[2], 1/cc[2])
}


> My simpleminded understanding of simple regression is that when
> plotting regression lines for x on y and y on x in the same plot, the
> lines should cross each other at the respective means.  But, given the
> R function below, abline (lm(y~x)) works fine, but abline (lm(x~y))
> does not.  Why?
>
> function () {
> attach (attitude)
> x <- rating
> y <- learning
> detach (attitude)
> plot (x, y)
> abline(v=mean(x))
> abline(h=mean(y))
> abline (lm(y~x))
> abline (lm(x~y))
> }
	[[alternative text/enriched version deleted]]

