示例数据集here
让我们根据这些数据建立一个简单的格子图,用于线性回归,每个主题单独的面板
xyplot(Measurement~HOL|Subject,groups=Treatment,data=Data,
type=c('p','r'),auto.key=T,aspect="xy")
问题是,我想目视检查斜率和截距是否相关。因此,我想通过线性回归截取而不是主题来命令面板(这是在道格拉斯贝茨的书“lme4:使用R的混合效果建模”图3.1中完成的,但我找不到示例代码)。我知道我可以通过添加
来手动更改面板的顺序index.cond=list(c(1,2,3, etc))
但这非常低效,特别是因为我想为多个响应变量执行此操作。
有没有人有自动方式来做到这一点?如果它有任何内置函数,我也愿意在ggplot2中尝试这个,但据我所知,没有办法轻易地将方面改为45度,如
aspect="xy"
在莱迪思。
提前感谢您的任何想法
答案 0 :(得分:2)
如果您想通过回归截距进行排序,则最好运行回归。例如,我们可以使用您的数据
cf<-sapply(Data$Subject, function(x)
coef(lm(Measurement~HOL, data=subset(Data, Subject==x))))
这将为每个人提供斜率/截距,然后我们可以创建一个新的因子排序的主题因素
Sx<-reorder(Data$Subject, cf[1,])
然后将该变量用作图中的分组变量
xyplot(Measurement~HOL|Sx,groups=Treatment,data=Data,
type=c('p','r'),auto.key=T,aspect="xy")
在ggplot
中,您可以修正x/y
与+coord_fixed(ratio=1)
的比率