Generate and correlate synthetic Likert and rating-scale questionnaire responses with predefined means, standard deviations, Cronbach's Alpha, Factor Loading table, coefficients, and other summary statistics. It can be used to simulate Likert data, construct multi-item scales, generate correlation matrices, and create example survey datasets for teaching statistics, psychometrics, and methodological research. Worked examples and documentation are available in the package articles, accessible via the package website, < https://winzarh.github.io/LikertMakeR/>.

LikertMakeR synthesises Likert-scale and related bounded rating-scale data with predefined means, standard deviations, correlations, Cronbach’s alpha, and factor-loading-based structure for simulation studies, teaching, and methodological research..
Version 2.1.1 (April 2026)
For a full introduction and worked examples, see the package website: https://winzarh.github.io/LikertMakeR/
From CRAN:
install.packages("LikertMakeR")
The latest development version is available from the author's GitHub repository.
library(devtools)
install_github("WinzarH/LikertMakeR")
library(LikertMakeR)
R <- matrix(
c(
1.00, 0.60, 0.45, 0.40,
0.60, 1.00, 0.75, 0.35,
0.45, 0.75, 1.00, 0.50,
0.40, 0.35, 0.50, 1.00
),
nrow = 4, ncol = 4, byrow = TRUE
)
dat <- makeScales(
n = 64,
means = c(2.75, 3.00, 3.25, 3.50),
sds = c(1.25, 1.50, 1.30, 1.25),
lowerbound = rep(1, 4),
upperbound = rep(5, 4),
items = c(5, 5, 4, 4),
cormatrix = R
)
head(dat)
cor(dat) |> round(2)
lfast(): generate bounded/discrete data with target mean & SD
lcor(): rearrange columns to approximate a target correlation matrix
makeCorrAlpha(): generate an item correlation matrix with target Cronbach’s alpha
makeScales(): wrapper for lfast() + lcor() to generate a dataframe of correlated columns
makeCorrLoadings(): build an item correlation matrix from factor loadings and factor correlations
makeItemsScale(): generate items from a summated scale with target alpha
makePaired() / makeRepeated(): reconstruct data from paired t-test / repeated-measures summaries
makeScalesRegression(): generate data from summary of multiple-regression analysis
correlateScales(): combine multiple item sets so summated scales match a target correlation matrix
Helpers: alpha(), eigenvalues(), reliability()
A Likert scale is the mean, or sum, of several ordinal rating scales. They are bipolar (usually “agree-disagree”) responses to propositions that are determined to be moderately-to-highly correlated among each other, and capturing various facets of a theoretical construct.
NOTE
A single 1-5 rating scale is NOT a true Likert scale - it may be a Likert-scale item.
Summated rating scales are not continuous or unbounded. For example, a 5-point Likert scale that is constructed with, say, five items (questions) will have a summed range of between 5 (all rated ‘1’) and 25 (all rated ‘5’) with all integers in between, and the mean range will be ‘1’ to ‘5’ with intervals of 1/5=0.20. A 7-point Likert scale constructed from eight items will have a summed range between 8 (all rated ‘1’) and 56 (all rated ‘7’) with all integers in between, and the mean range will be ‘1’ to ‘7’ with intervals of 1/8=0.125.
Package website (recommended): https://winzarh.github.io/LikertMakeR/
Vignettes cover:
generating scales from summary statistics,
correlation matrices from alpha or loadings,
repeated-measures and paired designs,
reliability estimation and diagnostics,
validation studies demonstrating function accuracy.
Winzar, H. (2026). LikertMakeR (version 2.0.0) [R package].
The Comprehensive R Archive Network (CRAN),
<https://CRAN.R-project.org/package=LikertMakeR>