Generating correlated Likert data

Hello!
I am trying to create data for my students.

I would need to create several vectors of Likert data (1 to 7), each of them should be correlated to the other with a predetermined rho, and each column should have a certain median or mean.

I tried using rtruncnorm to get bounded data, and then fabricatr::correlate, but the data I get are not bounded, so it doesn't fit my needs (since I need likert data). In fabricatr:correlate, I could use draw_likert, but it doesn't seem to accept medians/means as parameters.

I would really appreciate inputs or examples. Thanks in advance :slight_smile:

like this ?

library(truncnorm)
library(fabricatr)
set.seed(42)
(r1 <- sort(round(rtruncnorm(n=100,a=1,b=7,mean=4,sd=2))))
hist(r1)


r2 <- correlate(given = r1, rho = 0.8,
                                draw_count, mean = 3)

r3 <- pmax.int(pmin.int(r2,7),1)

hist(r3)

cor(r1,r2)
cor(r1,r3)

fixing r2 to r3 in the way I do is crude, and does drop the correlation slightly as would be expected, but is it not close enough to work with ?