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,
    • With particular attention to specifying mixture models in OpenMx
  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('',

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.

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).

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

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

Pull requests

  • Please always contribute via pull request instead of committing to master, so I can review the contribution.
    • You can either fork the repository to your own account and then submit a pull request, or make minor changes directly on this repository, and choose to commit them to a different branch and send a pull request when you save those changes
  • If you fix an issue, in your Commit message, please write “closes #issuenumber” so we can trace which commits fixed which issues
  • Please add a line to for each bug fix or feature contribution
  • Please increment the minor version number in DESCRIPTION, e.g.: ->