rnorm_pre Produces a random normally distributed vector with the specified correlation to one or more existing vectors

rnorm_pre(x, mu = 0, sd = 1, r = 0, empirical = FALSE, threshold = 1e-12)

Arguments

x

the existing vector or data table of all vectors

mu

desired mean of returned vector

sd

desired SD of returned vector

r

desired correlation(s) between existing and returned vectors

empirical

logical. If true, mu, sd and r specify the empirical not population mean, sd and covariance

threshold

for checking correlation matrix

Value

vector

Examples

v1 <- rnorm(10)
v2 <- rnorm_pre(v1, 0, 1, 0.5)
cor(v1, v2)
#> [1] 0.4259624

x <- rnorm_multi(50, 2, .5)
x$y <- rnorm_pre(x, r = c(0.5, 0.25))
cor(x)
#>             X1          X2         y
#> X1  1.00000000 -0.09557708 0.4123768
#> X2 -0.09557708  1.00000000 0.1635048
#> y   0.41237682  0.16350480 1.0000000