This tutorial shows the full easytable workflow using
palmerpenguins.
Coefficient | Baseline | With Species | Full Model |
|---|---|---|---|
(Intercept) | -5780.83 *** | -4031.48 *** | -4047.52 *** |
flipper_length_mm | 49.69 *** | 40.71 *** | 41.09 *** |
species:Chinstrap | -206.51 *** | -205.59 *** | |
species:Gentoo | 266.81 *** | 199.81 * | |
island:Dream | -59.75 | ||
island:Torgersen | -101.92 | ||
N | 342 | 342 | 342 |
R sq. | 0.76 | 0.78 | 0.78 |
Adj. R sq. | 0.76 | 0.78 | 0.78 |
Significance: ***p < .01; **p < .05; *p < .1 | |||
By default, each coefficient cell is two lines:
easytable(
m1, m2, m3,
model.names = c("Baseline", "With Species", "Full Model"),
highlight = TRUE
)Coefficient | Baseline | With Species | Full Model |
|---|---|---|---|
(Intercept) | -5780.83 *** | -4031.48 *** | -4047.52 *** |
flipper_length_mm | 49.69 *** | 40.71 *** | 41.09 *** |
species:Chinstrap | -206.51 *** | -205.59 *** | |
species:Gentoo | 266.81 *** | 199.81 * | |
island:Dream | -59.75 | ||
island:Torgersen | -101.92 | ||
N | 342 | 342 | 342 |
R sq. | 0.76 | 0.78 | 0.78 |
Adj. R sq. | 0.76 | 0.78 | 0.78 |
Significance: ***p < .01; **p < .05; *p < .1 | |||
easytable(
m1, m2, m3,
model.names = c("Baseline", "With Species", "Full Model"),
control.var = "island",
highlight = TRUE
)Coefficient | Baseline | With Species | Full Model |
|---|---|---|---|
(Intercept) | -5780.83 *** | -4031.48 *** | -4047.52 *** |
flipper_length_mm | 49.69 *** | 40.71 *** | 41.09 *** |
species:Chinstrap | -206.51 *** | -205.59 *** | |
species:Gentoo | 266.81 *** | 199.81 * | |
island | Y | ||
N | 342 | 342 | 342 |
R sq. | 0.76 | 0.78 | 0.78 |
Adj. R sq. | 0.76 | 0.78 | 0.78 |
Significance: ***p < .01; **p < .05; *p < .1 | |||
control.var is useful when models include many factor
levels or fixed effects.
if (requireNamespace("lmtest", quietly = TRUE) &&
requireNamespace("sandwich", quietly = TRUE)) {
easytable(
m1, m2, m3,
model.names = c("Baseline", "With Species", "Full Model"),
robust.se = TRUE
)
}Coefficient | Baseline | With Species | Full Model |
|---|---|---|---|
(Intercept) | -5780.83 *** | -4031.48 *** | -4047.52 *** |
flipper_length_mm | 49.69 *** | 40.71 *** | 41.09 *** |
species:Chinstrap | -206.51 *** | -205.59 *** | |
species:Gentoo | 266.81 *** | 199.81 * | |
island:Dream | -59.75 | ||
island:Torgersen | -101.92 | ||
N | 342 | 342 | 342 |
R sq. | 0.76 | 0.78 | 0.78 |
Adj. R sq. | 0.76 | 0.78 | 0.78 |
Significance: ***p < .01; **p < .05; *p < .1 | |||
Note: Robust Standard Errors | |||
if (requireNamespace("margins", quietly = TRUE)) {
easytable(
m2, m3,
model.names = c("With Species", "Full Model"),
margins = TRUE
)
}Coefficient | With Species | Full Model |
|---|---|---|
flipper_length_mm | 40.71 *** | 41.09 *** |
species:Chinstrap | -206.51 *** | -205.59 *** |
species:Gentoo | 266.81 *** | 199.81 * |
island:Dream | -59.75 | |
island:Torgersen | -101.92 | |
N | 342 | 342 |
R sq. | 0.78 | 0.78 |
Adj. R sq. | 0.78 | 0.78 |
Significance: ***p < .01; **p < .05; *p < .1 | ||
Note: Average Marginal Effects (AME) | ||
easytable keeps these display invariants:
These defaults are intentional so tables remain legible in long workflows.