[R] xyplot

Deepayan Sarkar deepayan.sarkar at gmail.com
Thu Oct 5 23:11:03 CEST 2006


On 10/5/06, Osman Al-Radi <osman.al.radi at gmail.com> wrote:
> Hi,
>
> for the data below:
> time<-c(rep(1:10,5))
> y<-time+rnorm(50,5,2)
> subject<-c(rep('a',10),rep('b',10),rep('c',10),rep('d',10),rep('e',10))
> group<-c(rep('A',30),rep('B',20))
> df<-data.frame(subject,group,time,y)
>
> I'd like to produce a plot with a single pannel with two loess curves one
> for each group. the code below does that but on two different pannels, I'd
> like to have both curves on the same pannel with different colors.
>
> xyplot(y~time|group, groups=subject,
>     panel=function(...){
>         panel.loess(...)
>         }
>     ,data=df)

Well, the "fix" for your code is

xyplot(y ~ time | group, data = df, groups = subject,

       panel = panel.superpose,
       panel.groups = function(...) panel.loess(...)

       )

Which, incidentally is effectively equivalent to

xyplot(y ~ time | group, data = df, groups = subject, type = "smooth")

However, this is not what you describe as your goal. If you want a
single smooth for each group combining all subjects within that group,
use something like

xyplot(y ~ time, data = df, groups = group. ...

The panel part does not change.

-Deepayan



More information about the R-help mailing list