多面板图上的格子面板

时间:2016-08-06 22:13:50

标签: r lattice

我正在尝试使用下面的代码创建具有多个面板的格子xyplot。问题是它在所有面板上添加了所有中间线(即,不按主题分组。有没有办法对每个受试者的中线进行分组?

以下是使用PKPDdatasets包中的Theoph数据集的可重现示例。

# devtools::install_github("dpastoor/PKPDdatasets")
library(PKPDdatasets)
library(lattice)
library(latticeExtra)
library(dplyr)

Theoph_Data <- Theoph

Theoph_Data1 <- Theoph_Data %>% group_by(Subject) %>% mutate(Median= median(Time))

print(Theoph_Data1)

Theoph_PK <- xyplot(conc ~ Time| Subject, data=Theoph_Data1,
                   panel = function(x,y,...) {
                   panel.xyplot(x,y,...)
                   panel.abline(v=Theoph_Data1$Median)
                   })
Theoph_PK

1 个答案:

答案 0 :(得分:0)

虽然你的例子不是最好的,因为每个人都有相同的中位时间,但基本的想法是:

Theoph_Data <- Theoph
xyplot(conc ~ Time| Subject, data=Theoph_Data1,
    panel = function(x,y,subscripts,...) {
        panel.xyplot(x,y, subscripts=subscripts,...)
        panel.abline(v=median(Theoph_Data1$Time[subscripts]))
    }
)

您可以在面板功能中请求subscripts=参数。这将为您提供每个面板中绘制的观察值的索引。然后,您可以使用这些下标对原始数据进行子集化。在这里,我们计算函数中的中位数(以确保我们只尝试使用单个值绘制单个行)。

enter image description here