quickblock
provides functions for assigning treatments
in randomized experiments using near-optimal threshold blocking. The
package is made with large data sets in mind and derives blocks more
than an order of magnitude quicker than other methods.
quickblock
is on CRAN and can be installed by
running:
install.packages("quickblock")
It is recommended to use the stable CRAN version, but the latest development version can be installed directly from Github using devtools:
if (!require("devtools")) install.packages("devtools")
::install_github("fsavje/quickblock") devtools
The package contains compiled code, and you must have a development
environment to install the development version. (Use
devtools::has_devel()
to check whether you do.) If no
development environment exists, Windows users download and install Rtools and
macOS users download and install Xcode.
# Load package
library("quickblock")
# Construct example data
<- data.frame(x1 = runif(100),
my_data x2 = runif(100))
# Make distances to be used when making blocking
<- distances(my_data, dist_variables = c("x1", "x2"))
my_distances
# Make blocking with at least four units in each block
<- quickblock(my_distances, size_constraint = 4L)
my_blocking
# Two treatment conditions
<- assign_treatment(my_blocking, treatments = c("T", "C"))
my_treatments
# Run experiment
<- my_data$x1 + (my_treatments == "T") * my_data$x2 + rnorm(100)
my_outcomes
# Estimate treatment effects and variance
blocking_estimator(my_outcomes, my_blocking, my_treatments)