Declare the size and features of the population

declare_model(..., handler = fabricate, label = NULL)

Arguments

...

arguments to be captured, and later passed to the handler

handler

a tidy-in, tidy-out function

label

a string describing the step

Value

A function that returns a data.frame.

Examples

# 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)