Add random variates to a data frame.

mutate_random(data, input, ...)

# S4 method for class 'data.frame,formula'
mutate_random(data, input, ...)

# S4 method for class 'data.frame,character'
mutate_random(data, input, envir = parent.frame(), ...)

# S4 method for class 'data.frame,list'
mutate_random(data, input, ...)

# S4 method for class 'data.frame,covset'
mutate_random(data, input, ...)

# S4 method for class 'data.frame,covobj'
mutate_random(data, input, envir = parent.frame(), ...)

Arguments

data

the data.frame to mutate

input

an unquoted R formula; see details

...

additional inputs

envir

environment for object lookup

Examples


data <- data.frame(ID=1:10, GROUP = sample(c(1,2,3),10,replace=TRUE))

mutate_random(data, AGE[40,90] ~ rnorm(55,50))
#>    ID GROUP      AGE
#> 1   1     2 84.40386
#> 2   2     3 88.81948
#> 3   3     2 43.36191
#> 4   4     2 86.87364
#> 5   5     1 65.26947
#> 6   6     3 55.02400
#> 7   7     2 72.12018
#> 8   8     2 63.42364
#> 9   9     3 76.06152
#> 10 10     1 64.71962
mutate_random(data, RE ~ rbeta(1,1) | GROUP)
#> Warning: `distinct_()` was deprecated in dplyr 0.7.0.
#>  Please use `distinct()` instead.
#>  See vignette('programming') for more help
#>  The deprecated feature was likely used in the dmutate package.
#>   Please report the issue at <https://github.com/kylebaron/dmutate/issues>.
#>    ID GROUP        RE
#> 1   1     2 0.1122766
#> 2   2     3 0.8993435
#> 3   3     2 0.1122766
#> 4   4     2 0.1122766
#> 5   5     1 0.2272696
#> 6   6     3 0.8993435
#> 7   7     2 0.1122766
#> 8   8     2 0.1122766
#> 9   9     3 0.8993435
#> 10 10     1 0.2272696

e <- list(lower=40,upper=140,mu=100,sd=100)

egfr <- covset(EGFR[lower,upper] ~ rnorm(mu,sd))

mutate_random(data,egfr,envir=e)
#>    ID GROUP      EGFR
#> 1   1     2 135.22792
#> 2   2     3 111.75926
#> 3   3     2  71.63773
#> 4   4     2 138.62491
#> 5   5     1  71.95445
#> 6   6     3 129.73872
#> 7   7     2  76.43539
#> 8   8     2 104.43347
#> 9   9     3  67.15081
#> 10 10     1  79.11031