在 coefplot 中手动排序系数

manually order coefficients in coefplot

我想手动对 coefplot 中的系数进行排序。之前的questions只能实现按(减少)magnitude排序,这不是我想要的

考虑以下示例:

library(coefplot)
data(tips, package = "reshape2")
mod1 <- lm(tip ~ day + sex + smoker + sex * smoker, data = tips)
coefplot.glm(mod1)

如何在不依赖大小的情况下实现 sexMale:smokerYesdaySatdayThudaySun(然后是其余部分)的系数顺序?

提前感谢您指出解决方案。 :)

因为coefplot.glm()正在输出一个ggplot对象,您可以访问数据对象并重新调整y因子:

创建ggplot对象

library(coefplot)
data(tips, package = "reshape2")
mod1 <- lm(tip ~ day + sex + smoker + sex * smoker, data = tips)
gg <- coefplot.glm(mod1)
gg

重新调整 y 因子

gg$data$Coefficient <- factor(gg$data$Coefficient, levels = rev(c("sexMale:smokerYes", "daySat", "dayThur", "daySun", "smokerYes", "sexMale", "(Intercept)")))
gg