R 使用ggplot绘制重磨系数

R 使用ggplot绘制重磨系数,r,ggplot2,linear-regression,R,Ggplot2,Linear Regression,我正试图设计一个coef。使用ggplot对多个模型进行估计 我要估计几个模型,然后同时将他们的点估计值绘制成一个图 举个简单的例子: library(ggplot2) model1 = lm(hp ~ gear + am + mpg + carb, data = mtcars) model2 = lm(hp ~ gear + am + I(am^2) + mpg + carb, data = mtcars) model3 = lm(hp ~ gear + am + I(am^2) + m

我正试图设计一个coef。使用ggplot对多个模型进行估计

我要估计几个模型,然后同时将他们的点估计值绘制成一个图

举个简单的例子:

library(ggplot2)

model1 = lm(hp ~ gear + am + mpg + carb, data = mtcars)
model2 = lm(hp ~ gear + am  + I(am^2) + mpg + carb, data = mtcars)
model3 = lm(hp ~ gear + am  + I(am^2) + mpg + carb, data = mtcars)
model4 = lm(hp ~ gear + am  + I(am^2) + mpg , data = mtcars)
model5 = lm(hp ~ gear + am  + I(am^2) + log(mpg) + log(carb), data = mtcars)



ce = function(model.obj) {
  extract = summary(get(model.obj))$coefficients[ ,1:2]
  return(data.frame(extract, vars=row.names(extract), model=model.obj))
}

# Run function on the three models and bind into single data frame
coefs = do.call(rbind, sapply(paste0(list("model1", "model2", "model3", "model4", "model5")), ce, simplify=FALSE))

names(coefs)[2] = "se" 


ggplot(coefs, aes(vars, Estimate)) + 
  geom_hline(yintercept=0, lty=2, lwd=1, colour="red") +
  geom_errorbar(aes(ymin=Estimate - se, ymax=Estimate + se, colour=vars), 
                lwd=1, width=0) +
  geom_point(size=3, aes(colour=vars)) +
  facet_grid(. ~ model) +
  coord_flip() +
  guides(colour=FALSE) +
  labs(x="Coefficient", y="Value")

我们将得到5个图(1行5列)是否有一种简单的方法来转换图,使我们仍然有5个图在同一时间,但尺寸将是5行1列

只需交换
facet\u网格中的术语
-
facet\u网格(model~)
您可能可以查看
ggpubr
包的
ggarrange()
函数。通过选择行/列编号,可以很容易地安排多个绘图。非常感谢您使用realy basic
facet\u grid(model~)
我不知道这个参数