R 将几条水平线添加到小的多重打印
我有一个小的多重绘图,如下所示: 该图显示了两个模型的结果:cyl预测的mpg和两种变速箱类型的disp。0是第一款车型,适合自动变速器。1是第二款车型,适用于手动变速器。获取绘图的代码如下所示:R 将几条水平线添加到小的多重打印,r,ggplot2,regression,R,Ggplot2,Regression,我有一个小的多重绘图,如下所示: 该图显示了两个模型的结果:cyl预测的mpg和两种变速箱类型的disp。0是第一款车型,适合自动变速器。1是第二款车型,适用于手动变速器。获取绘图的代码如下所示: library(tidyverse) library(dotwhisker) mod_mtcars='mpg~cyl+disp' np_mtcars=mtcars%>% group_by(am)%>% do(broom::tidy(lm(mod_mtcars, data= .
library(tidyverse)
library(dotwhisker)
mod_mtcars='mpg~cyl+disp'
np_mtcars=mtcars%>%
group_by(am)%>%
do(broom::tidy(lm(mod_mtcars, data= . )))%>%
rename(model=am)
small_multiple(np_mtcars)
我想在每个子批次中添加一条水平线,该线对应于无组模型拟合的系数(完整的池模型:cp=lm(mpg~cyl+disp,data=mtcars)
)。我知道如何添加一条通用的水平线,例如,截距为0但是,有人知道如何为每个子批次添加不同的行吗?
当我将cp
(cp_coeff=coef(cp)
)的系数矢量化并将其添加到绘图中时,我会在每个子绘图中一次获得所有系数。当我运行下面的循环时,我得到了每个子图上打印的向量的最后一个元素
for (i in 1:2){
small_multiple(np_mtcars)+
geom_hline(cp_coeff[i])}
您需要添加另一层,如下所示:
small_multiple(np_mtcars) +
geom_hline(data = broom::tidy(cp)[-1,], aes(yintercept=estimate))
查看broom::tidy(cp)
,了解其工作原理的解释(与np_mtcars
相比),并考虑在图中已定义的面上如何绘制