Implementation of the 'PROCESS' Macro

Perform moderation, mediation, moderated mediation and moderated moderation. Inspired from famous 'PROCESS' macro for 'SPSS' and 'SAS' created by Andrew Hayes.

The processR package aims to be a user-friendly way to perform moderation, mediation, moderated mediation and moderated moderation in R. This package is inspired from famous PROCESS macro for SPSS and SAS created by Andrew Hayes.

Andrew F. Hayes was not involved in the development of this R package or application and cannot attest to the quality of the computations implemented in the code you are using. Use at your own risk.


You can install the processR package from github.

if(!require(devtools)) install.packages("devtools")

What does this package cover ?

The processR package covers moderation, mediation, moderated mediation and moderated moderation with R. Supporting models are as follows.

 [1]  0.0  1.0  2.0  3.0  4.0  4.2  5.0  6.0  6.3  6.4  7.0  8.0  9.0 10.0
[15] 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0
[29] 28.0 29.0 30.0 31.0 35.0 36.0 40.0 41.0 45.0 49.0 50.0 58.0 59.0 60.0
[43] 61.0 62.0 63.0 64.0 65.0 66.0 67.0 74.0 75.0 76.0

Currently, 52 models are supported.

Example: Moderated Mediation (PROCESS macro model 8)

I will explain functions of processR package by a example.

Concept Diagram and Statistical Diagram

You can draw concept diagram and statistical diagram easily. For example, you can draw the concept diagram for PROCESS macro model 8.


You can draw statistical diagram of this model.


Full vignette

You can see full vignette for model 8 at

Shiny App

I have developed a shiny app. You can test the app at I will appreciate any comment.

How to perform this analysis with shiny app

You can see how to perform this analysis at

Sample powerpoint file

In the shiny app, you can download the analysis results as a powerpoint file. You can download the sample file model8.pptx - view with office web viewer.


R package processR version 0.1.0

=================================== (2019-Mar-6)

  • New data pmacro, nodes, parrows, caskets, disaster, education, estress, glbwarm, pmi, protest and teams added

  • New function addArrows, addCatVars, addCovarEquation, addNodes, catMediation, centerPrint, changeLabelName, conceptDiagram, conceptDiagram2, conditionalEffectPlot, corPlot, corTable, corTable2, discriminantValidityTable, discriminantValidityTable2, drawStatDiagram, drawtext, estimatesTable, estimatesTable2, extractX, findName, findNames, fit2alpha, fit2df2, fun2eq, getAspectRatio, getHelmert, getInfo, getRatioTable, getYhat,interactStr, makeCatEquation, makeEquation, makeIndirectEquation, makeIndirectEquationCat, meanCentering, modelFitGuideTable, modelFitGuideTable2, modelFitTable, modelFitTable2, modelsSummary, modelsSummaryTable, modmedEquation, modmedSummary, modmedSummaryTable, myarrow, myflatten, myformat, pformat, pmacroModel, regEquation, reliabilityTable, reliabilityTable2, removeParentheses, rightPrint, seekGroup, seekNameVars, seekVar, showModels, statisticalDiagram, str2vector, strGrouping, str_detect2, str_setdiff, sumEquation, treatModerator, tripleEquation and tripleInteraction added

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.2.6 by Keon-Woong Moon, 4 months ago

Report a bug at

Browse source code at

Authors: Keon-Woong Moon [aut, cre] , Sokyoung Hong [ctb]

Documentation:   PDF Manual  

GPL-2 license

Imports lavaan, diagram, dplyr, flextable, ggplot2, ggrepel, officer, psych, purrr, rrtable, semTools, stringr, tidyselect, rlang, tidyr, predict3d, interactions, ztable, rmarkdown

Suggests shiny, shinyWidgets, knitr, readr

See at CRAN