再会,
我正在使用 xyplot() 创建一个意大利面条图……对于每个 subject_identifier,它会随着时间的推移绘制 Y 的分数。
xyplot(Y~time,groups=subject_identifier,data=c,type=c('l'))
每个 subject_identifier 都会在某个指定时间 event_time 发生一个事件。如何在 event_time 为每个人在每行上打一个勾或一个点?
谢谢
如果 event_times 是一个向量:event_times <- c(5,3,6,8)
并且您希望groups
与这些索引按顺序排列,那么您可以使用组作为 event_times 的索引,然后它将成为面板参数中 x 和 y 的索引:
xyplot(Y~time,groups=subject_identifier,data=cdat,
panel=function(x,y,groups,...){
panel.xyplot(x,y,groups=groups,...)
panel.segments(x0=x[(grp-1)*10+event_times[grp]],
x1=x[(grp-1)*10+event_times[grp]],
y0=y[(grp-1)*10+event_times[grp]]-.2,
y1=y[(grp-1)*10+event_times[grp]]+.2, groups=groups,...)},
type=c('l'))
所以第一组在 time=5 被打勾,第二组在 time=3 被打勾,以此类推。(group-1)*10
尽管可能有更清洁的方法,但需要抵消panel.superpose
. 蜱的其他选项当然是可能的,但您在问题介绍中相当模糊。