[R] Drawing a line in xyplot

David Winsemius dwinsemius at comcast.net
Sat Apr 7 19:16:37 CEST 2012


On Apr 7, 2012, at 11:35 AM, wcheckle wrote:

> here is the data (fyi this is made-up data)
>
> x = as.data.frame (
> cbind
> (c
> (5,8,7,5,8,10,11,6,4,5,20,25,27,30,35,32,28,21,20,34,11,15,18,12,15,12,10,15,19,20
> ),
> c
> (1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3
> ),c(1,0,1,1,1,1,0,0,0,1,0,1,0,0,0,0,1,0,0,0,1,1,1,0,1,0,1,0,0,0)))
> names(x)=c("mortality","type","attend")

Sidebar not related to the question at hand: I would like to get hands  
on the person who is teaching the malpractice of using the form  
as.data.frame(cbind(vectors)))  and ....what would be sufficiently  
motivational?  ... strangulation would be a bit severe, but perhaps  
carefully applied thumb pressure to the cricoid cartilage for  
sufficient interval to gain attention? I have seen several instances  
of that (mal)form in various rhelp-ish venues in the last couple of  
weeks and it is a common source of obscure error.

xdat = data.frame ( mortality =c(5,  
8,7,5,8,10,11,6,4,5,20,25,27,30,35,32,28,21,20,34,11,15,18,12,15,12,10,15,19,20 
), type=
c(1, 1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3),  
attend c(1, 0,1,1,1,1,0,0,0,1,0,1,0,0,0,0,1,0,0,0,1,1,1,0,1,0,1,0,0,0))

The reason for NOT using cbind is that it forces all vectors to have  
the same mode.  The whole point of having data.frames is to allow you  
to mix modes. So that constriction is completely boneheaded.

And please learn to use spaces.

>
> here is the image:
> http://r.789695.n4.nabble.com/file/n4539596/x.jpg
>
> revised code with image:
>
> x11(height=8,width=11)
> xyplot ( mortality ~ factor(attend)|type,
> panel=function(x,y){panel.grid(lty=5);
> panel.xyplot(x,y,pch=16,jitter.x=TRUE,col=1)},
> strip=strip.custom(which.given=1, bg="orange"),data
> =x,aspect=2:1,layout=c(3,1))
>
> http://r.789695.n4.nabble.com/file/n4539596/x1.jpg
>
> i am trying to replicate the "red" mean lines on the xyplot graph
>
> abline won't do it.  llines may be able to do it, but i don't know  
> how to
> use/implement
>

I didn't say to 'abline'. I said 'panel.abline' and the help page for  
panel.abline also include 'panel.segments' which it becomes clear you  
wanted ...  now that we have data and can see what you were looking at.

xyplot(mortality ~ type, data=xdat,
                panel=function(x,y){
                    panel.xyplot(x,y, jitter.x=TRUE)
                    panel.segments(x0=c(.9, 1.9, 2.9),
                                    x1=c(1.1,2.1,3.1),
                                    y0=tapply(xdat$mortality, xdat 
$type, median),
                                    y1=tapply(xdat$mortality, xdat 
$type, median),
                              col="red", lwd=3 )
                        })


> thanks
>
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Drawing-a-line-in-xyplot-tp4538689p4539596.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at 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.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list