Declare the size and features of the population
declare_model(..., handler = fabricate, label = NULL)
arguments to be captured, and later passed to the handler
a tidy-in, tidy-out function
a string describing the step
A function that returns a data.frame.
# Declare a single-level population with no covariates
declare_model(N = 100)
#> declare_model(N = 100)
# declare_model returns a function:
my_model <- declare_model(N = 100)
my_model()
#> ID
#> 1 001
#> 2 002
#> 3 003
#> 4 004
#> 5 005
#> 6 006
#> 7 007
#> 8 008
#> 9 009
#> 10 010
#> 11 011
#> 12 012
#> 13 013
#> 14 014
#> 15 015
#> 16 016
#> 17 017
#> 18 018
#> 19 019
#> 20 020
#> 21 021
#> 22 022
#> 23 023
#> 24 024
#> 25 025
#> 26 026
#> 27 027
#> 28 028
#> 29 029
#> 30 030
#> 31 031
#> 32 032
#> 33 033
#> 34 034
#> 35 035
#> 36 036
#> 37 037
#> 38 038
#> 39 039
#> 40 040
#> 41 041
#> 42 042
#> 43 043
#> 44 044
#> 45 045
#> 46 046
#> 47 047
#> 48 048
#> 49 049
#> 50 050
#> 51 051
#> 52 052
#> 53 053
#> 54 054
#> 55 055
#> 56 056
#> 57 057
#> 58 058
#> 59 059
#> 60 060
#> 61 061
#> 62 062
#> 63 063
#> 64 064
#> 65 065
#> 66 066
#> 67 067
#> 68 068
#> 69 069
#> 70 070
#> 71 071
#> 72 072
#> 73 073
#> 74 074
#> 75 075
#> 76 076
#> 77 077
#> 78 078
#> 79 079
#> 80 080
#> 81 081
#> 82 082
#> 83 083
#> 84 084
#> 85 085
#> 86 086
#> 87 087
#> 88 088
#> 89 089
#> 90 090
#> 91 091
#> 92 092
#> 93 093
#> 94 094
#> 95 095
#> 96 096
#> 97 097
#> 98 098
#> 99 099
#> 100 100
# Declare a single-level population with two covariates
declare_model(
N = 6,
female = rbinom(n = N, 1, prob = 0.5),
height_ft = rnorm(N, mean = 5.67 - 0.33 * female, sd = 0.25)
)
#> declare_model(N = 6, female = rbinom(n = N, 1, prob = 0.5), height_ft = rnorm(N,
#> mean = 5.67 - 0.33 * female, sd = 0.25))
# Declare a single-level population with potential outcomes
declare_model(
N = 6,
U = rnorm(N),
potential_outcomes(Y ~ Z + U))
#> declare_model(N = 6, U = rnorm(N), potential_outcomes(Y ~ Z +
#> U))
# Declare a single-level population with two sets of potential outcomes
declare_model(
N = 6,
U = rnorm(N),
potential_outcomes(Y ~ Z1 + Z2 + U,
conditions = list(Z1 = c(0, 1), Z2 = c(0, 1))))
#> declare_model(N = 6, U = rnorm(N), potential_outcomes(Y ~ Z1 +
#> Z2 + U, conditions = list(Z1 = c(0, 1), Z2 = c(0, 1))))
# Declare a population from existing data
declare_model(mtcars)
#> declare_model(mtcars)
# Resample from existing data
declare_model(N = 100, data = mtcars, handler = resample_data)
#> declare_model(N = 100, data = mtcars, handler = resample_data)
# Declare a two-level hierarchical population
# containing cities within regions and a
# pollution variable defined at the city level
declare_model(regions = add_level(N = 5),
cities = add_level(N = 10, pollution = rnorm(N, mean = 5)))
#> declare_model(regions = add_level(N = 5), cities = add_level(N = 10,
#> pollution = rnorm(N, mean = 5)))
# Declare a population using a custom function
# the default handler is fabricatr::fabricate,
# but you can supply any function that returns a data.frame
my_model_function <- function(N) {
data.frame(u = rnorm(N))
}
declare_model(N = 10, handler = my_model_function)
#> declare_model(N = 10, handler = my_model_function)