treatment_assign: treatment_assign() carries out robust treatment assignment by...

View source: R/treatment_assign.R

treatment_assignR Documentation

treatment_assign() carries out robust treatment assignment by strata/blocks

Description

treatment_assign() carries out robust treatment assignment by strata/blocks

Usage

treatment_assign(
  data,
  share_control,
  n_t = 2,
  strata_varlist,
  missfits = c("global", "NA", "strata"),
  seed = 1990,
  share_ti = rep(1/n_t - share_control/n_t, times = n_t),
  key
)

Arguments

data

A data.frame, tibble or data.table

share_control

share of the observations assigned to control group

n_t

Number of treatments groups

strata_varlist

vector of categorical variables to form the strata/blocks for random assignment. Should be in the form of vars(var1, var2, ...)

missfits

How to handle the misfits. Default is "global". See Carril (2016) for details.

seed

A number used to set.seed().

share_ti

The share of each treatment group. If NULL (Default), each treatment group will have equal share.

key

The key identifier column of data.

Details

This function creates a variable that indicates the treatment status. The random assignment is made by strata/blocks. It can handle equal or unequal treatment shares. Finally, it has three methods available to handle misfits (same as randtreat in STATA): "global": assigning the observations that couldn't be randomly assigned globally, "strata": assigning the observations that couldn't be randomly assigned by strata, "NA": set the the treat observations that couldn't be randomly assigned to NA.

Value

A list: "data" = the data with key, treat, strata, misfit column., "summary_strata" = A summary tibble with the membership of each strata and its size.

Examples

data<-data.frame(key = c(1:1000), 
                 ing_quartile = rep(c("Q1", "Q2", "Q3", "Q4"), each = 250), 
                 age_quartile = rep(c("Q1", "Q2", "Q3", "Q4"), times = 250))
assigment<-treatment_assign(data = data, share_control = 0.1, n_t = 3,
                            strata_varlist = dplyr::vars(ing_quartile, 
                            age_quartile), missfits = "strata", 
                            seed = 1990, key = "key")
table(data$treat, useNA = "ifany")
prop.table(table(data$treat, useNA = "ifany"))

RCT documentation built on May 13, 2022, 9:06 a.m.