CRAN status CRAN RStudio mirror downloads lifecycle R-CMD-check Codecov test coverage Contributor Covenant

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 free open source R packages lavaan or OpenMx, or the commercial closed-source program Mplus (controlled through the R package 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 public release of tidySEM from CRAN with:


If you want access to the latest developer version, including features that may not yet be finalized, you can install the development version of tidySEM from R-universe with:

                 repos = c('https://cjvanlissa.r-universe.dev',

And if you are a developer and want to contribute to tidySEM, or want to install a specific historical version of the package, you can install directly 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: Tidy structural equation modeling. R package version 0.2.1. https://github.com/cjvanlissa/tidySEM/

Contributing and Contact Information

If you have ideas, please get involved. You can contribute by opening an issue on ‘GitHub’, or sending a pull request with proposed features (see further instructions below).

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

Pull requests