R: Create Pairs of Correlated Random Numbers

RndPairs {DescTools} | R Documentation

## Create Pairs of Correlated Random Numbers

### Description

Create pairs of correlated random numbers.

### Usage

    RndPairs(n, r, rdist1 = rnorm(n = n, mean = 0, sd = 1),
             rdist2 = rnorm(n = n, mean = 0, sd = 1))

    RndWord(size, length, x = LETTERS, replace = TRUE, prob = NULL)

### Arguments

`n` | number of pairs. If length(n) > 1, the length is taken to be the number required.
`r` | the correlation between the two sets.
`rdist1, rdist2` | the distribution of the random vector X1 and X2. Default is standard normal distribution.
`size` | a non-negative integer giving the number of artificial words to build.
`length` | a non-negative integer giving the length of the words.
`x` | elements to choose from.
`replace` | Should sampling be with replacement?
`prob` | a vector of probability weights for obtaining the elements of the vector being sampled.

### Value

a data.frame with 2 columns, X1 and X2 containing the random numbers

### Author(s)

Andri Signorell <andri@signorell.net>

### See Also

`runif`, `rnorm`, `Random` and friends

### Examples

    # produce 100 pairs of a normal distributed random number with a correlation of 0.7
    d.frm  <- RndPairs(n=100, r=0.7)

    plot(d.frm)
    lines(lm(X2 ~ X1,d.frm))

    # change the distribution
    d.frm  <- RndPairs(n=100, r=0.7, rdist2 = rlnorm(n = 100, meanlog = 1, sdlog = .8))
    d.frm  <- RndPairs(n=100, r=0.7, rdist2 = runif(n = 100, -1, 4))

    x <- StrCap(sapply(sample(3:15, 10), function(i) RndWord(1, i, x=letters)))

    # produce some artificial words with defined probabilities for the letters
    p <- c(6.51,1.89,3.06,5.08,17.4,1.66,3.01,4.76,7.55,0.27,1.21,3.44,2.53,
           9.78,2.51,0.79,0.02,7,7.27,6.15,4.35,0.67,1.89,0.03,0.04,1.13)
    sapply(sample(3:15, 10), function(i) RndWord(1, i, x=letters, prob=p))

[Package DescTools version 0.99.32 Index]