library("mc2d") Posdef <- function (n, ev = runif(n, 0, 10)) { Z <- matrix(ncol=n, rnorm(n^2)) decomp <- qr(Z) Q <- qr.Q(decomp) R <- qr.R(decomp) d <- diag(R) ph <- d / abs(d) O <- Q %*% diag(ph) Z <- t(O) %*% diag(ev) %*% O return(Z) } N <- 1000 # number of draws # generate random correlation matrix sigma <- Posdef(5) cor_mat <- cov2cor(sigma) # independently generate 5 standard normal random variable x1 <- rnorm(N) x2 <- rnorm(N) x3 <- rnorm(N) x4 <- rnorm(N) x5 <- rnorm(N) # invoke iman-conover method output <- cornode(cbind(x1,x2,x3,x4,x5),target=cor_mat) # examine correlation matrices cat("Spearman rank correlation matrix target:\n") cor_mat cat("Spearman rank correlation matrix of simulated data:\n") cor(output, method="spearman")