Non-normal data is everywhere. In order to test the influence of the non-normality on your model, you may what to generate some non-normal data first. The existing methods of generating multivariate non-normal data typically create data according to specific univariate marginal measures such as the univariate skewness and kurtosis, like the widely-used Vale and Maurelli's method[@vale83], but not multivariate measures such as Mardia’s skewness and kurtosis [@mardia70]. We create a new method of generating multivariate non-normal data with given multivariate skewness and kurtosis [@qu19].

The goal of mnonr package is to give you a simple and quick way to generate multivariate non-normal data with pre-specified multivariate measures (skewness and kurtosis).

The package consists of three functions:

**mnonr**: a function that can generate multivariate data with pre-specified multivariate skewness and kurtosis;**unonr**: a function that can generate multivariate data with pre-specified marginal skewness and kurtosis;**mardia**: a function that can check univariate and multivariate skewness and kurtosis.

The functions are easy to use. As for **mnonr**, along with multivariate skewness and kurtosis, you can also specify sample size, number of variables, covariance matrix, and initial start values. The initial start values of a vector with 3 numbers for polynomial coefficients' (b,c,d) (the default setting is (0.9,0.4,0)) will yield different coefficient sets which could affect the multivariate skewness and kurtosis (more details are in the paper @qu19). We recommend that users should try with different start values in data simulation.

The **unonr** function is copied from **mvrnonnorm** function in the *semTools* package [@semtools].

The **mardia** can return the result of both marginal and multivariate skewness and kurtosis.