Sampling is split into two steps, for predictors and for response variables,
to allow users to choose which to simulate. sample_x() will only sample
predictor variables, and sample_y() will augment a data frame of predictors
with columns for response variables, overwriting any already present. Hence
one can use sample_y() as part of a simulation with fixed predictors, for
instance.
Arguments
- population
- Population, as defined by - population().
- n
- Number of observations to draw from the population. 
- xs
- Data frame of predictor values drawn from the population, as obtained from - sample_x().
Value
Data frame (tibble) of n rows, with columns matching the variables
specified in the population.
Examples
# A population with a simple linear relationship
pop <- population(
  x1 = predictor(rnorm, mean = 4, sd = 10),
  x2 = predictor(runif, min = 0, max = 10),
  y = response(0.7 + 2.2 * x1 - 0.2 * x2, error_scale = 1.0)
)
xs <- pop |>
  sample_x(5)
xs
#> Sample of 5 observations from
#> Population with variables:
#> x1: rnorm(list(mean = 4, sd = 10))
#> x2: runif(list(min = 0, max = 10))
#> y: gaussian(0.7 + 2.2 * x1 - 0.2 * x2, error_scale = 1)
#> 
#> # A tibble: 5 × 2
#>      x1    x2
#> * <dbl> <dbl>
#> 1  5.36  4.21
#> 2 16.9   9.16
#> 3 -8.91  5.71
#> 4 -5.77  3.39
#> 5 19.8   8.27
xs |>
  sample_y()
#> Sample of 5 observations from
#> Population with variables:
#> x1: rnorm(list(mean = 4, sd = 10))
#> x2: runif(list(min = 0, max = 10))
#> y: gaussian(0.7 + 2.2 * x1 - 0.2 * x2, error_scale = 1)
#> 
#> # A tibble: 5 × 3
#>      x1    x2     y
#>   <dbl> <dbl> <dbl>
#> 1  5.36  4.21  12.3
#> 2 16.9   9.16  35.7
#> 3 -8.91  5.71 -20.6
#> 4 -5.77  3.39 -13.4
#> 5 19.8   8.27  41.7