strengejacke / sjPlot

sjPlot - Data Visualization for Statistics in Social Science
https://strengejacke.github.io/sjPlot
603 stars 91 forks source link

Moved glmmTMB require statement in plot_type_ranef to come after the model class check #858

Closed jvparidon closed 8 months ago

jvparidon commented 1 year ago

Calling plot_model() with type = "re" (and by extension plot_type_ranef()) on an lme4 model object currently throws an error if glmmTMB is not installed: Package 'glmmTMB' required for this function to work, please install it.

However, looking at the plot_type_ranef() code it doesn't seem like glmmTMB is actually necessary to plot lme4 ranefs. There is a require call for glmmTMB at the top of plot_type_ranef(), before the control flow actually checks whether the model is an lme4 or glmmTMB model.

I've moved the glmmTMB require statement so that the model class is checked first. If glmmTMB is not actually necessary, not having it installed won't throw an error.

I considered moving the lme4 require statement as well, but sjstats (and by extension sjPlot) has it as a hard dependency anyway, so it should always be installed if plot_type_ranef() is called.

jvparidon commented 1 year ago

Love using sjPlot, by the way!

strengejacke commented 8 months ago

LGTM! Thanks!