Modify a Design

modify_design(design, ...)

Arguments

design

a design object, usually created by declare_design, quick_design, or download_design.

...

a series of calls to add_step, remove_step, or replace_step

Value

A design object. See declare_design for details.

Examples

my_population <- declare_population(N = 100, noise = rnorm(N)) my_potential_outcomes <- declare_potential_outcomes(Y_Z_0 = noise, Y_Z_1 = noise + rnorm(N, mean = 2, sd = 2)) my_assignment <- declare_assignment(m = 50) my_assignment_2 <- declare_assignment(m = 25) design <- declare_design(my_population, my_potential_outcomes, my_assignment) design
#> #> Design Summary #> #> Step 1 (population): my_population --------------------------------------------- #> #> N = 100 #> #> Added variable: ID #> N_missing N_unique #> 0 100 #> #> Added variable: noise #> min median mean max sd N_missing N_unique #> -2.78 -0.19 -0.15 1.97 1.06 0 100 #> #> Step 2 (potential outcomes): my_potential_outcomes ----------------------------- #> #> Added variable: Y_Z_0 #> min median mean max sd N_missing N_unique #> -2.78 -0.19 -0.15 1.97 1.06 0 100 #> #> Added variable: Y_Z_1 #> min median mean max sd N_missing N_unique #> -2.66 1.61 1.73 6.83 2.27 0 100 #> #> Step 3 (assignment): my_assignment --------------------------------------------- #> #> Random assignment procedure: Complete random assignment #> Number of units: 100 #> Number of treatment arms: 2 #> The possible treatment categories are 0 and 1. #> The probabilities of assignment are constant across units. #> #> Added variable: Z #> 0 1 #> Frequency 50 50 #> Proportion 0.50 0.50 #> #> Added variable: Z_cond_prob #> 0.5 #> Frequency 100 #> Proportion 1.00 #>
modify_design(design, replace_step(my_assignment_2, replace = my_assignment))
#> #> Design Summary #> #> Step 1 (population): my_population --------------------------------------------- #> #> N = 100 #> #> Added variable: ID #> N_missing N_unique #> 0 100 #> #> Added variable: noise #> min median mean max sd N_missing N_unique #> -2.53 0.21 0.17 1.92 0.93 0 100 #> #> Step 2 (potential outcomes): my_potential_outcomes ----------------------------- #> #> Added variable: Y_Z_0 #> min median mean max sd N_missing N_unique #> -2.53 0.21 0.17 1.92 0.93 0 100 #> #> Added variable: Y_Z_1 #> min median mean max sd N_missing N_unique #> -2.07 2.18 2.13 7.19 2.14 0 100 #> #> Step 3 (assignment): my_assignment_2 ------------------------------------------- #> #> Random assignment procedure: Complete random assignment #> Number of units: 100 #> Number of treatment arms: 2 #> The possible treatment categories are 0 and 1. #> The probabilities of assignment are constant across units. #> #> Added variable: Z #> 0 1 #> Frequency 75 25 #> Proportion 0.75 0.25 #> #> Added variable: Z_cond_prob #> 0.25 0.75 #> Frequency 25 75 #> Proportion 0.25 0.75 #>
modify_design(design, add_step(dplyr::mutate(income = noise^2), after = my_assignment))
#> #> Design Summary #> #> Step 1 (population): my_population --------------------------------------------- #> #> N = 100 #> #> Added variable: ID #> N_missing N_unique #> 0 100 #> #> Added variable: noise #> min median mean max sd N_missing N_unique #> -3.13 -0.01 -0.09 2.21 1.06 0 100 #> #> Step 2 (potential outcomes): my_potential_outcomes ----------------------------- #> #> Added variable: Y_Z_0 #> min median mean max sd N_missing N_unique #> -3.13 -0.01 -0.09 2.21 1.06 0 100 #> #> Added variable: Y_Z_1 #> min median mean max sd N_missing N_unique #> -2.72 1.55 1.74 7.71 2.32 0 100 #> #> Step 3 (assignment): my_assignment --------------------------------------------- #> #> Random assignment procedure: Complete random assignment #> Number of units: 100 #> Number of treatment arms: 2 #> The possible treatment categories are 0 and 1. #> The probabilities of assignment are constant across units. #> #> Added variable: Z #> 0 1 #> Frequency 50 50 #> Proportion 0.50 0.50 #> #> Added variable: Z_cond_prob #> 0.5 #> Frequency 100 #> Proportion 1.00 #> #> Step 4 (custom data modification): dplyr::mutate(income = noise^2) ------------- #> #> Added variable: income #> min median mean max sd N_missing N_unique #> 0.00 0.60 1.12 9.83 1.57 0 100 #>
modify_design(design, add_step(dplyr::mutate(income = noise^2), before = my_assignment))
#> #> Design Summary #> #> Step 1 (population): my_population --------------------------------------------- #> #> N = 100 #> #> Added variable: ID #> N_missing N_unique #> 0 100 #> #> Added variable: noise #> min median mean max sd N_missing N_unique #> -2.61 -0.06 0.02 2.60 1.08 0 100 #> #> Step 2 (potential outcomes): my_potential_outcomes ----------------------------- #> #> Added variable: Y_Z_0 #> min median mean max sd N_missing N_unique #> -2.61 -0.06 0.02 2.60 1.08 0 100 #> #> Added variable: Y_Z_1 #> min median mean max sd N_missing N_unique #> -3.51 1.90 2.00 7.95 2.35 0 100 #> #> Step 3 (custom data modification): dplyr::mutate(income = noise^2) ------------- #> #> Added variable: income #> min median mean max sd N_missing N_unique #> 0.00 0.39 1.15 6.81 1.60 0 100 #> #> Step 4 (assignment): my_assignment --------------------------------------------- #> #> Random assignment procedure: Complete random assignment #> Number of units: 100 #> Number of treatment arms: 2 #> The possible treatment categories are 0 and 1. #> The probabilities of assignment are constant across units. #> #> Added variable: Z #> 0 1 #> Frequency 50 50 #> Proportion 0.50 0.50 #> #> Added variable: Z_cond_prob #> 0.5 #> Frequency 100 #> Proportion 1.00 #>
modify_design(design, remove_step(my_assignment))
#> #> Design Summary #> #> Step 1 (population): my_population --------------------------------------------- #> #> N = 100 #> #> Added variable: ID #> N_missing N_unique #> 0 100 #> #> Added variable: noise #> min median mean max sd N_missing N_unique #> -2.47 -0.25 -0.17 2.89 0.97 0 100 #> #> Step 2 (potential outcomes): my_potential_outcomes ----------------------------- #> #> Added variable: Y_Z_0 #> min median mean max sd N_missing N_unique #> -2.47 -0.25 -0.17 2.89 0.97 0 100 #> #> Added variable: Y_Z_1 #> min median mean max sd N_missing N_unique #> -3.85 1.44 1.54 6.71 2.49 0 100 #>