Add a contrast to a data frame
Usage
add_contrast(
data,
col,
contrast = c("anova", "sum", "treatment", "helmert", "poly", "difference"),
levels = NULL,
...,
add_cols = TRUE,
colnames = NULL
)
Arguments
- data
the data frame
- col
the column to recode
- contrast
the contrast to recode to
- levels
the levels of the factor in order
- ...
arguments to pass to the contrast function (base or omit)
- add_cols
whether to just add the contrast to the existing column or also to create new explicit columns in the dataset (default)
- colnames
optional list of column names for the added contrasts
Examples
df <- sim_design(between = list(time = 1:6), plot = FALSE) %>%
add_contrast("time", "poly")
# test all polynomial contrasts
lm(y ~ time, df) %>% broom::tidy()
#> # A tibble: 6 × 5
#> term estimate std.error statistic p.value
#> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 (Intercept) 0.0227 0.0414 0.547 0.585
#> 2 time^1 -0.151 0.102 -1.49 0.137
#> 3 time^2 -0.0483 0.102 -0.476 0.634
#> 4 time^3 0.0467 0.102 0.460 0.646
#> 5 time^4 0.0934 0.102 0.920 0.358
#> 6 time^5 0.261 0.102 2.57 0.0103
# test only the linear and quadratic contrasts
lm(y ~ `time^1` + `time^2`, df) %>% broom::tidy()
#> # A tibble: 3 × 5
#> term estimate std.error statistic p.value
#> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 (Intercept) 0.0227 0.0416 0.545 0.586
#> 2 `time^1` -0.151 0.102 -1.48 0.138
#> 3 `time^2` -0.0483 0.102 -0.474 0.636