Skip to contents

Permutes treatment labels within each block.

Usage

mrm_perm_block(
  data,
  response_col,
  treatment_col,
  block_col,
  n_perm = 1000L,
  seed = 42L
)

Arguments

data

data.frame.

response_col, treatment_col, block_col

Column names.

n_perm

Number of permutations.

seed

RNG seed.

Value

Named list with observed_statistic, n_perm, p_value, interpretation.

Examples

set.seed(2026)
df <- expand.grid(
  block = paste0("B", 1:6),
  treatment = c("ctrl", "drug")
)
# Block-level baseline + treatment effect
df$y <- as.numeric(df$block) * 1.2 +
  ifelse(df$treatment == "drug", 0.7, 0) +
  rnorm(nrow(df), 0, 0.4)
res <- mrm_perm_block(df,
  response_col = "y",
  treatment_col = "treatment",
  block_col = "block",
  n_perm = 500L
)
res$p_value
#> [1] 0.016