semEff provides functionality to automatically calculate direct, indirect, and total effects for ‘piecewise’ structural equation models, comprising lists of fitted models representing structured equations (Lefcheck, 2016; Shipley, 2000, 2009). Confidence intervals are provided via bootstrapping.

Currently supported model classes are "lm", "glm", "lmerMod", "glmerMod", "lmerModLmerTest", "gls", and "betareg".


You can install the released version of semEff from CRAN with:

And the development version from GitHub with:



The primary function is semEff(), which returns an object of class "semEff" with associated print() and summary() methods. Everything can technically be accomplished in a single call to semEff(); however, since bootstrapping is employed to generate resamples for confidence intervals (via bootEff()), it is usually preferable to save these estimates separately prior to calling semEff() – allowing more flexibility and saving time if/when recalling the function.


Package functions are well-documented and most include some short examples. In addition, see the following vignettes for some longer demonstrations:


Lefcheck, J. S. (2016). piecewiseSEM: Piecewise structural equation modelling in R for ecology, evolution, and systematics. Methods in Ecology and Evolution, 7(5), 573–579.

Shipley, B. (2000). A New Inferential Test for Path Models Based on Directed Acyclic Graphs. Structural Equation Modeling: A Multidisciplinary Journal, 7(2), 206–218.

Shipley, B. (2009). Confirmatory path analysis in a generalized multilevel context. Ecology, 90(2), 363–368.