[R] Lattice:can't subset in panel function using other variables

Deepayan Sarkar deepayan.sarkar at gmail.com
Fri Aug 31 23:04:29 CEST 2007

On 8/30/07, Folkes, Michael <FolkesM at pac.dfo-mpo.gc.ca> wrote:
> I've succeeded doing a subset within the panel function of xyplot - if I'm subsetting based on either the value of 'x' or 'y' (e.g. below).  However, I wish to subset based on the value of another variable and colour that one plotted point.  It's not working.  Either it doesn't plot the coloured data point, or if I sort the data differently it colours one datapoint, but the wrong one.   I assume this means it's not getting the right subscripts?    Finally I can sort of see the light as if I remove the conditioning variable (week) and subset before the xyplot (e.g. week==1) to get just one panel, it plots the correct data including the correct single red point.
> Where am I erring?
> _______________________________________
> print(xyplot(yval~xval|week,data=mydata,
>  panel=function(x,y,subscripts){
>         #panel.xyplot(x,y,type='p',col=1,cex=.5)
>         panel.xyplot(x[y<=40],y[y<=40],type='p',col=2,cex=.5)  #  <-----this works
>         panel.xyplot(x[mydata$yr==2005],y[mydata$yr==2005],type='p',pch=16,col=2,cex=.5)  #  <-----sometimes this won't work or it colours wrong datapoint
> }))
> ___________________________

Why not

xyplot(yval~xval|week,data=mydata, subset = yval < 40)


xyplot(yval~xval|week,data=mydata, subset = yr==2005)


More information about the R-help mailing list