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 --------------------------------------------- #> #> Added variable: ID #> N_missing N_unique #> 0 100 #> #> Added variable: noise #> min median mean max sd N_missing N_unique #> -2.31 -0.26 -0.14 2.16 0.91 0 100 #> #> Step 2 (potential outcomes): my_potential_outcomes ----------------------------- #> #> Added variable: Y_Z_0 #> min median mean max sd N_missing N_unique #> -2.31 -0.26 -0.14 2.16 0.91 0 100 #> #> Added variable: Y_Z_1 #> min median mean max sd N_missing N_unique #> -3.37 1.50 1.55 6.18 2.12 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 --------------------------------------------- #> #> Added variable: ID #> N_missing N_unique #> 0 100 #> #> Added variable: noise #> min median mean max sd N_missing N_unique #> -2.19 -0.09 0.01 2.80 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.19 -0.09 0.01 2.80 1.06 0 100 #> #> Added variable: Y_Z_1 #> min median mean max sd N_missing N_unique #> -2.87 1.64 1.77 8.14 2.20 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 --------------------------------------------- #> #> Added variable: ID #> N_missing N_unique #> 0 100 #> #> Added variable: noise #> min median mean max sd N_missing N_unique #> -2.55 0.06 0.01 2.41 1.05 0 100 #> #> Step 2 (potential outcomes): my_potential_outcomes ----------------------------- #> #> Added variable: Y_Z_0 #> min median mean max sd N_missing N_unique #> -2.55 0.06 0.01 2.41 1.05 0 100 #> #> Added variable: Y_Z_1 #> min median mean max sd N_missing N_unique #> -4.67 2.35 2.32 8.27 2.47 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.59 1.08 6.50 1.34 0 100 #>
modify_design(design, add_step(dplyr::mutate(income = noise^2), before = my_assignment))
#> #> Design Summary #> #> Step 1 (population): my_population --------------------------------------------- #> #> Added variable: ID #> N_missing N_unique #> 0 100 #> #> Added variable: noise #> min median mean max sd N_missing N_unique #> -2.48 0.17 0.11 2.63 1.01 0 100 #> #> Step 2 (potential outcomes): my_potential_outcomes ----------------------------- #> #> Added variable: Y_Z_0 #> min median mean max sd N_missing N_unique #> -2.48 0.17 0.11 2.63 1.01 0 100 #> #> Added variable: Y_Z_1 #> min median mean max sd N_missing N_unique #> -3.89 2.27 1.99 6.69 2.40 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.53 1.02 6.92 1.36 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 --------------------------------------------- #> #> Added variable: ID #> N_missing N_unique #> 0 100 #> #> Added variable: noise #> min median mean max sd N_missing N_unique #> -2.08 0.07 0.02 2.58 0.98 0 100 #> #> Step 2 (potential outcomes): my_potential_outcomes ----------------------------- #> #> Added variable: Y_Z_0 #> min median mean max sd N_missing N_unique #> -2.08 0.07 0.02 2.58 0.98 0 100 #> #> Added variable: Y_Z_1 #> min median mean max sd N_missing N_unique #> -4.51 1.47 1.70 7.50 2.38 0 100 #>