Learn R Programming

BMisc (version 1.4.10)

check_staggered: check_staggered

Description

A function to check whether treatment is staggered in a panel data set; that is, whether treatment is absorbing, so that no unit ever reverts from treated back to untreated.

Usage

check_staggered(df, idname, treatname, tname = NULL)

Value

a logical indicating whether treatment is staggered

Arguments

df

the data.frame used in the function

idname

name of column that holds the unit id

treatname

name of column with the treatment indicator

tname

name of column that holds the time period. If supplied, each unit's rows are sorted by it before checking. If `NULL` (the default), the rows are assumed to already be in time order.

Examples

Run this code
n <- 50
id <- rep(seq_len(n), each = 4)
t <- rep(1:4, n)
g <- rep(sample(c(0, 2, 3), n, replace = TRUE), each = 4)
treat <- as.integer(t >= g & g > 0)
dta <- data.frame(id = id, t = t, treat = treat)
check_staggered(dta, idname = "id", treatname = "treat")

## treatment that switches back off is not staggered
dta_rev <- data.frame(
  id = c(1, 1, 2, 2), t = c(1, 2, 1, 2), treat = c(0, 1, 1, 0)
)
check_staggered(dta_rev, idname = "id", treatname = "treat")

Run the code above in your browser using DataLab