simple_ra implements a random assignment procedure in which units are independently assigned to treatment conditions. Because units are assigned independently, the number of units that are assigned to each condition can vary from assignment to assignment. For most experimental applications in which the number of experimental units is known in advance, complete_ra is better because the number of units assigned to each condition is fixed across assignments. In most cases, users should specify N and not more than one of prob, prob_each, or num_arms. If only N is specified, a two-arm trial with prob = 0.5 is assumed.

simple_ra(N, prob = NULL, prob_each = NULL, num_arms = NULL,
  conditions = condition_names, check_inputs = TRUE,
  condition_names = NULL)



The number of units. N must be a positive integer. (required)


Use for a two-arm design. prob is the probability of assignment to treatment and must be a real number between 0 and 1 inclusive. (optional)


Use for a multi-arm design in which the values of prob_each determine the probabilities of assignment to each treatment condition. prob_each must be a numeric vector giving the probability of assignment to each condition. All entries must be nonnegative real numbers between 0 and 1 inclusive and the total must sum to 1. (optional)


The number of treatment arms. If unspecified, num_arms will be determined from the other arguments. (optional)


A character vector giving the names of the treatment groups. If unspecified, the treatment groups will be named 0 (for control) and 1 (for treatment) in a two-arm trial and T1, T2, T3, in a multi-arm trial. An exception is a two-group design in which num_arms is set to 2, in which case the condition names are T1 and T2, as in a multi-arm trial with two arms. (optional)


logical. Defaults to TRUE.




A vector of length N that indicates the treatment condition of each unit. Is numeric in a two-arm trial and a factor variable (ordered by conditions) in a multi-arm trial.


# Two Group Designs Z <- simple_ra(N=100) table(Z)
#> Z #> 0 1 #> 46 54
Z <- simple_ra(N=100, prob=0.5) table(Z)
#> Z #> 0 1 #> 46 54
Z <- simple_ra(N=100, prob_each = c(0.3, 0.7), conditions = c("control", "treatment")) table(Z)
#> Z #> control treatment #> 31 69
# Multi-arm Designs Z <- simple_ra(N=100, num_arms=3) table(Z)
#> Z #> T1 T2 T3 #> 37 31 32
Z <- simple_ra(N=100, prob_each=c(0.3, 0.3, 0.4)) table(Z)
#> Z #> T1 T2 T3 #> 32 31 37
Z <- simple_ra(N=100, prob_each=c(0.3, 0.3, 0.4), conditions=c("control", "placebo", "treatment")) table(Z)
#> Z #> control placebo treatment #> 29 34 37
Z <- simple_ra(N=100, conditions=c("control", "placebo", "treatment")) table(Z)
#> Z #> control placebo treatment #> 28 36 36