Not sure if this adds much to Ken Knoblauch previous suggestion. But:
Subject<-c(1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4) Day<-c(1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6) Activity<-c(2,3,4,3,7,4,5,8,2,8,4,6,2,5,3,8,9,5,6,3,4,5,6,7) EventA<-c("Yes",NA,"Yes",NA,NA,NA,"Yes",NA,NA,NA,NA,NA, "Yes",NA,NA,NA,NA,NA,NA,NA,"Yes",NA,NA,NA) require(loa) panel.temp = function(x=x, y=y, z=z, ...){ panel.xyplot(x, y, z =1, ...) panel.abline(v=x[!is.na(z)], col="red") } loaPlot(EventA ~ Day*Activity|Subject, panel=panel.temp, type="b") The loa package is still a little messy, not yet on CRAN and the help is only half written but you are welcome to have a play: https://sites.google.com/site/karlropkins/rpackages/loa The basic plot is z ~ x * y, where z is information to be displayed at (x,y) and the package includes a very inelegant alternative to subscripting. Regards, Karl Ropkins ITS Leeds ------------------------------ Date: Tue, 7 Jan 2014 15:50:39 +0000 From: Ken Knoblauch <ken.knobla...@inserm.fr<mailto:ken.knobla...@inserm.fr>> To: <r-<mailto:r-h...@stat.math.ethz.ch>h...@stat.math.ethz.ch> Subject: Re: [R] How do I perform conditional annotation of lattice panel plots? Message-ID: <loom.20140107t164813-...@post.gmane.org<mailto:loom.20140107t164813-...@post.gmane.org>> Content-Type: text/plain; charset="utf-8" Chen, George <George.Chen <at> roswellpark.org> writes: > My apologies for asking this question that may have been asked before. I am trying to plot activity > dependent on time conditioned by the subject. Code for sample data below. > So I have something like this > xyplot(Activity~Time|Subject). > This works fine, but now I want to show where on these activity curves Event A occurs. This is to explore the > relationship between A and activity. > > I tried this: > > xyplot(EventA+Activity~Time|Subject) > > but then the numerical ordering gets out of order. > Ideally Event A could be denoted by a vertical line cutting through the curve at the day Event A occurred, but > some other way to denote it would be great! > -----snip ------------- > Any ideas on how to do this would be appreciated! > > Thanks very much in advance! > > This email message may contain legally privileged and/or confidential information. If you are not the > intended recipient(s), or the employee or agent responsible for the delivery of this message to the > intended recipient(s), you are hereby notified that any disclosure, copying, distribution, or use of > this email message is prohibited. If you have received this message in error, please notify the sender > immediately by e-mail and delete this email message from your computer. Thank you. > [[alternative HTML version deleted]] You used Time in your formula but Day in your data so I changed the formula to Day assuming that's what you meant Perhaps, not the most elegant solution, but how about something like this library(lattice) Subject<-c(1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4) Day<-c(1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6) Activity<-c(2,3,4,3,7,4,5,8,2,8,4,6,2,5,3,8,9,5,6,3,4,5,6,7) EventA<-c("Yes",NA,"Yes",NA,NA,NA,"Yes",NA,NA,NA,NA,NA, "Yes",NA,NA,NA,NA,NA,NA,NA,"Yes",NA,NA,NA) Data<-data.frame(cbind(Subject,Day,Activity,EventA)) xyplot(Activity~ Day | Subject) xyplot(Activity ~ Day | Subject, data = Data, subscripts = TRUE, panel = function(x, y, subscripts, ...){ panel.xyplot(x, y) wh <- Data[subscripts, ] panel.abline(v = wh$Day[!is.na(wh$EventA)]) }) -- Kenneth Knoblauch Inserm U846 Stem-cell and Brain Research Institute Department of Integrative Neurosciences 18 avenue du Doyen L?pine 69500 Bron France tel: +33 (0)4 72 91 34 77 fax: +33 (0)4 72 91 34 61 portable: +33 (0)6 84 10 64 10 http://www.sbri.fr/members/kenneth-knoblauch.html ______________________________________________ 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.