An open API service indexing awesome lists of open source software.

https://github.com/declaredesign/randomizr

randomizr: Easy-to-Use Tools for Common Forms of Random Assignment and Sampling
https://github.com/declaredesign/randomizr

Last synced: 10 months ago
JSON representation

randomizr: Easy-to-Use Tools for Common Forms of Random Assignment and Sampling

Awesome Lists containing this project

README

          

---
output: github_document
title: "randomizr: Tools for random assignment and random sampling"
---

```{r, echo = FALSE}
set.seed(42)
knitr::opts_chunk$set(
collapse = TRUE,
message = FALSE,
comment = "#>",
fig.path = "README-"
)
options(digits = 2)
```

[![CRAN status](https://www.r-pkg.org/badges/version/randomizr)](https://cran.r-project.org/package=randomizr)
[![CRAN RStudio mirror downloads](https://cranlogs.r-pkg.org/badges/grand-total/randomizr?color=green)](https://r-pkg.org/pkg/randomizr)
[![Build status](https://github.com/DeclareDesign/randomizr/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/DeclareDesign/randomizr/actions/workflows/R-CMD-check.yaml)
[![Codecov test coverage](https://codecov.io/gh/DeclareDesign/randomizr/graph/badge.svg)](https://app.codecov.io/gh/DeclareDesign/randomizr)
[![Replications](https://softwarecite.com/badge/randomizr)](https://softwarecite.com/package/randomizr)

**randomizr** is designed to make conducting field, lab, survey, or online experiments easier by automating the random assignment process. Social and lab scientists conducting experiments need a process to assign individuals or units of observation to treatment or control wings. Common designs include simple random assignment, complete randomization, block randomization, cluster randomization, and blocked cluster randomization. **randomizr** automates all of these processes and assists scientists in doing transparent, replicable science. We offer **randomizr** for both [`R`](https://declaredesign.org/r/randomizr) and [`Stata`](https://declaredesign.org/stata/randomizr).

### Installing randomizr for R

Installing the latest stable version of **randomizr** in `R`:.

```{r,eval=FALSE}
install.packages("randomizr")
```

### Getting started with randomizr for R

**randomizr** has five main random assignment functions, corresponding to the common experimental designs listed above. You can read more about using each of these functions in our [reference library](https://declaredesign.org/r/randomizr/reference/) or by clicking on the function names: `simple_ra()`, `complete_ra()`, `block_ra()`, `cluster_ra()`, and `block_and_cluster_ra()`.

`complete_ra()` (Complete randomization) is the function that will be most appropriate for a large number of experimental situations: when you want to assign a fixed `m` units out of a population of `N` units to treatment:

```{r echo=TRUE, results="hide"}
library(randomizr)
Z <- complete_ra(N = 100, m = 50)
table(Z)
```
```{r echo=FALSE}
knitr::kable(t(as.matrix(table(Z))))
```

A more complicated design that, for example, assigns different numbers of clusters to three different treatments, makes use of `cluster_ra()` (Cluster randomization):

```{r echo=TRUE, results="hide"}
# This makes a cluster variable: one unit in cluster "a", two in "b"...
clust_var <- rep(letters[1:15], times = 1:15)

Z <- cluster_ra(
clusters = clust_var,
m_each = c(4, 4, 7),
conditions = c("control", "placebo", "treatment")
)
table(Z, clust_var)
```
```{r echo=FALSE}
knitr::kable(table(Z, clust_var))
```

For more information about all of **randomizr**'s functionality, please see our [online tutorial](https://declaredesign.org/r/randomizr/articles/randomizr_vignette.html)

### randomizr for Stata

Installing the latest stable version of **randomizr** from ssc is easy:

```{r eval=FALSE}
ssc install randomizr
```

If you would like to install the latest development release directly from GitHub, run the following code:

```{r eval=FALSE}
net install randomizr, from(https://raw.githubusercontent.com/DeclareDesign/strandomizr/master/) replace
```

Happy randomizing!