On 09.08.2008 01:05 (UTC+1), Deepayan Sarkar wrote:
On Fri, Aug 8, 2008 at 2:38 PM, Rainer Hurling <[EMAIL PROTECTED]> wrote:
Dear community,

I am looking for a possibility to draw 'regression lines' instead of
'smooth' lines in grouped xyplots. The following code should give you a
small example of the data structure.


library(lattice)
data(Gcsemv, package = "mlmRev")

# Creates artificial grouping variable ...
Gcsemv$Groups <-
 ifelse(as.numeric(as.character(Gcsemv$school))>65000,
        "Group1", "Group2")

xyplot(written ~ course | gender, data = Gcsemv,
      type = c("g", "p", "smooth"),
      groups = Groups,
      panel = function(x, y, ...) {
        panel.xyplot(x, y, ...)
# Here I want to draw the regression lines
#         panel.abline(x, y)
      },
      auto.key = list(space = 'right'))

Does this do what you want?:

Yes, exactly!

xyplot(written ~ course | gender, data = Gcsemv,
      type = c("g", "p", "r"),
      groups = Groups)

The problem with your approach is that the panel function you define
doesn't deal with groups. An easy workaround is to use
panel.superpose:

I knew that I had to look for a panel function dealing with groups, but I had no clue how to declare.

xyplot(written ~ course | gender, data = Gcsemv,
      type = c("g", "p"),
      groups = Groups,
      panel = panel.superpose,
      panel.groups = function(x, y, ...) {
        panel.xyplot(x, y, ...)
        panel.lmline(x, y, ...)
      },
      auto.key = list(space = 'right'))

Both, type("r") and panel.groups() are fine for my problem. And with panel.groups() I am able to write my own group functions, very nice. Now I can start analyzing ... :-)

-Deepayan

Many thanks, also for your valuable book,
Rainer

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to