[R] How do I perform conditional annotation of lattice

Karl Ropkins K.Ropkins at its.leeds.ac.uk
Wed Jan 8 13:24:55 CET 2014


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.knoblauch at inserm.fr<mailto:ken.knoblauch at inserm.fr>>
To: <r-<mailto:r-help at stat.math.ethz.ch>help at stat.math.ethz.ch>
Subject: Re: [R] How do I perform conditional annotation of lattice
        panel   plots?
Message-ID: <loom.20140107T164813-513 at post.gmane.org<mailto:loom.20140107T164813-513 at 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



More information about the R-help mailing list