Skip to contents

easytable is built around one promise:

  1. Easy to use.
  2. Easy to read.

Minimal Example

library(easytable)

m1 <- lm(mpg ~ wt, data = mtcars)
m2 <- lm(mpg ~ wt + hp, data = mtcars)

easytable(m1, m2)

term

Model 1

Model 2

(Intercept)

37.29 ***
(1.88)

37.23 ***
(1.6)

wt

-5.34 ***
(0.56)

-3.88 ***
(0.63)

hp

-0.03 ***
(0.01)

N

32

32

R sq.

0.75

0.83

Adj. R sq.

0.74

0.81

Significance: ***p < .01; **p < .05; *p < .1

Output Formats

Word / HTML path (default)

easytable(m1, m2, output = "word")

term

Model 1

Model 2

(Intercept)

37.29 ***
(1.88)

37.23 ***
(1.6)

wt

-5.34 ***
(0.56)

-3.88 ***
(0.63)

hp

-0.03 ***
(0.01)

N

32

32

R sq.

0.75

0.83

Adj. R sq.

0.74

0.81

Significance: ***p < .01; **p < .05; *p < .1

LaTeX / PDF path

easytable(m1, m2, output = "latex")

Common Options

easytable(
  m1, m2,
  model.names = c("Baseline", "With Controls"),
  highlight = TRUE
)

term

Baseline

With Controls

(Intercept)

37.29 ***
(1.88)

37.23 ***
(1.6)

wt

-5.34 ***
(0.56)

-3.88 ***
(0.63)

hp

-0.03 ***
(0.01)

N

32

32

R sq.

0.75

0.83

Adj. R sq.

0.74

0.81

Significance: ***p < .01; **p < .05; *p < .1

easytable(
  m1, m2,
  robust.se = TRUE
)

term

Model 1

Model 2

(Intercept)

37.29 ***
(2.13)

37.23 ***
(1.94)

wt

-5.34 ***
(0.63)

-3.88 ***
(0.62)

hp

-0.03 ***
(0.01)

N

32

32

R sq.

0.75

0.83

Adj. R sq.

0.74

0.81

Significance: ***p < .01; **p < .05; *p < .1

Note: Robust Standard Errors

Export Files

easytable(
  m1, m2,
  export.word = "table.docx",
  export.csv = "table.csv"
)

Next Steps