
Penguins Tutorial: Easy to Use, Easy to Read
Source:vignettes/penguins-tutorial.Rmd
penguins-tutorial.RmdThis tutorial shows the full easytable workflow using
palmerpenguins.
2) Create a readable baseline table
term |
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:
- Estimate + significance stars
- Standard error in parentheses
3) Highlight significant coefficients
easytable(
m1, m2, m3,
model.names = c("Baseline", "With Species", "Full Model"),
highlight = TRUE
)term |
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 | |||
4) Collapse controls into indicator rows
easytable(
m1, m2, m3,
model.names = c("Baseline", "With Species", "Full Model"),
control.var = "island",
highlight = TRUE
)term |
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.
6) Robust standard errors (optional dependency path)
if (requireNamespace("lmtest", quietly = TRUE) &&
requireNamespace("sandwich", quietly = TRUE)) {
easytable(
m1, m2, m3,
model.names = c("Baseline", "With Species", "Full Model"),
robust.se = TRUE
)
}term |
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 | |||
7) Marginal effects (optional dependency path)
if (requireNamespace("margins", quietly = TRUE)) {
easytable(
m2, m3,
model.names = c("With Species", "Full Model"),
margins = TRUE
)
}term |
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) | ||