The package tidySEM provides a ‘tidy’ workflow for conducting, reporting, and plotting structural equation modeling analyses. It does not perform model estimation, but instead allows users to estimate models in a software-agnostic way, using either the R package lavaan, or the commercial stand-alone program Mplus (through MplusAutomation). The aim of tidySEM is to provide three specific functions:

  1. Generate model syntax in a top-down, tidy way,
  2. Tabulate model output in a publication-ready, uniform manner,
  3. Make easily customizable graphs for SEM-models.

These functions are designed with the tidy tools manifesto (Wickham, last updated 23-11-2019) in mind, and interface with the existing suite of packages in the tidyverse.


You can install the development version of tidySEM from ‘GitHub’ with:



Every user-facing function in the package is documented, and the documentation can be accessed by running ?function_name in the R console, e.g., ?graph_sem.

Furthermore, there are three main vignettes, describing the three main tracks of tidySEM functions:

  1. A vignette about generating syntax and estimating models
  2. A vignette about tabulating results
  3. A vignette about making graphs

Citing tidySEM

You can cite the R-package with the following citation:

Van Lissa, C. J., (2019). tidySEM: A tidy workflow for running, reporting, and plotting structural equation models in lavaan or Mplus. R package version 0.1.6.

Contributing and Contact Information

If you have ideas, please get involved. I am currently looking for a major contributor on this project, and smaller contributions are also welcome. You can contribute by opening an issue on ‘GitHub’, or sending a pull request with proposed features.

  • File a ‘GitHub’ issue here
  • Make a pull request here

By participating in this project, you agree to abide by the Contributor Covenant.