Académique Documents
Professionnel Documents
Culture Documents
Summary
This document gives a gallery of tables which can be made by using the xtable
package to create LATEX output. It doubles as a regression check for the package.
> library(xtable)
Gallery
2.1
Data frame
data(tli)
## Demonstrate data.frame
tli.table <- xtable(tli[1:10,])
digits(tli.table)[c(2,6)] <- 0
> print(tli.table,floating=FALSE)
1
2
3
4
5
6
7
8
9
10
grade
6
7
5
3
8
5
8
4
6
7
sex
M
M
F
M
M
M
F
M
M
M
disadvg
YES
NO
YES
YES
YES
NO
YES
YES
NO
YES
ethnicty
HISPANIC
BLACK
HISPANIC
HISPANIC
WHITE
BLACK
HISPANIC
BLACK
WHITE
HISPANIC
tlimth
43
88
34
65
75
74
72
79
88
87
2.2
Matrix
1
2
3
4
5
6
7
8
9
10
2.3
(Intercept)
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
sexM
1.00
1.00
0.00
1.00
1.00
1.00
0.00
1.00
1.00
1.00
grade
6.00
7.00
5.00
3.00
8.00
5.00
8.00
4.00
6.00
7.00
sexM:grade
6.00
7.00
0.00
3.00
8.00
5.00
0.00
4.00
6.00
7.00
aov
sex
ethnicty
grade
disadvg
Residuals
2.4
Df
1
3
1
1
93
Sum Sq
75.37
2572.15
36.31
59.30
18682.87
Mean Sq
75.37
857.38
36.31
59.30
200.89
F value
0.38
4.27
0.18
0.30
Pr(>F)
0.5417
0.0072
0.6717
0.5882
lm
(Intercept)
sexM
ethnictyHISPANIC
ethnictyOTHER
ethnictyWHITE
sexM:ethnictyHISPANIC
sexM:ethnictyWHITE
Estimate
73.6364
-1.6364
-9.7614
15.8636
4.7970
10.6780
5.1230
Std. Error
4.2502
5.8842
6.5501
10.8360
4.9687
8.7190
7.0140
2
t value
17.33
-0.28
-1.49
1.46
0.97
1.22
0.73
Pr(>|t|)
0.0000
0.7816
0.1395
0.1466
0.3368
0.2238
0.4670
2.4.1
anova object
> print(xtable(anova(fm2)),floating=FALSE)
Df
1
3
2
93
sex
ethnicty
sex:ethnicty
Residuals
2.4.2
Sum Sq
75.37
2572.15
298.43
18480.04
Mean Sq
75.37
857.38
149.22
198.71
F value
0.38
4.31
0.75
Pr(>F)
0.5395
0.0068
0.4748
1
2
Res.Df
96
93
2.5
RSS
19053.59
18480.04
Df
Sum of Sq
Pr(>F)
573.55
0.96
0.4141
glm
(Intercept)
ethnictyHISPANIC
ethnictyOTHER
ethnictyWHITE
grade
ethnictyHISPANIC:grade
ethnictyOTHER:grade
ethnictyWHITE:grade
2.5.1
Estimate
3.1888
-0.2848
212.1701
-8.8150
-0.5308
0.2448
-32.6014
1.0171
Std. Error
1.5966
2.4808
22122.7093
3.3355
0.2892
0.4357
3393.4687
0.5185
z value
2.00
-0.11
0.01
-2.64
-1.84
0.56
-0.01
1.96
anova object
> print(xtable(anova(fm3)),floating=FALSE)
NULL
ethnicty
grade
ethnicty:grade
Df
Deviance
3
1
3
47.24
1.73
7.20
Resid. Df
99
96
95
92
Resid. Dev
129.49
82.25
80.52
73.32
Pr(>|z|)
0.0458
0.9086
0.9923
0.0082
0.0665
0.5742
0.9923
0.0498
2.6
>
>
>
>
>
>
>
+
>
>
>
>
>
>
More aov
## Demonstrate aov
## Taken from help(aov) in R 1.1.1
## From Venables and Ripley (1997) p.210.
N <- c(0,1,0,1,1,1,0,0,0,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0)
P <- c(1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0)
K <- c(1,0,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,1,1,1,0,1,0)
yield <- c(49.5,62.8,46.8,57.0,59.8,58.5,55.5,56.0,62.8,55.8,69.5,55.0,
62.0,48.8,45.5,44.2,52.0,51.5,49.8,48.8,57.2,59.0,53.2,56.0)
npk <- data.frame(block=gl(6,4), N=factor(N), P=factor(P), K=factor(K), yield=yield)
npk.aov <- aov(yield ~ block + N*P*K, npk)
op <- options(contrasts=c("contr.helmert", "contr.treatment"))
npk.aovE <- aov(yield ~ N*P*K + Error(block), npk)
options(op)
#summary(npk.aov)
> print(xtable(npk.aov),floating=FALSE)
block
N
P
K
N:P
N:K
P:K
Residuals
2.6.1
Df
5
1
1
1
1
1
1
12
Sum Sq
343.30
189.28
8.40
95.20
21.28
33.13
0.48
185.29
Mean Sq
68.66
189.28
8.40
95.20
21.28
33.13
0.48
15.44
F value
4.45
12.26
0.54
6.17
1.38
2.15
0.03
Pr(>F)
0.0159
0.0044
0.4749
0.0288
0.2632
0.1686
0.8628
anova object
> print(xtable(anova(npk.aov)),floating=FALSE)
block
N
P
K
N:P
N:K
P:K
Residuals
2.6.2
Df
5
1
1
1
1
1
1
12
Sum Sq
343.30
189.28
8.40
95.20
21.28
33.13
0.48
185.29
Mean Sq
68.66
189.28
8.40
95.20
21.28
33.13
0.48
15.44
F value
4.45
12.26
0.54
6.17
1.38
2.15
0.03
Pr(>F)
0.0159
0.0044
0.4749
0.0288
0.2632
0.1686
0.8628
> print(xtable(summary(npk.aov)),floating=FALSE)
block
N
P
K
N:P
N:K
P:K
Residuals
Df
5
1
1
1
1
1
1
12
Sum Sq
343.30
189.28
8.40
95.20
21.28
33.13
0.48
185.29
Mean Sq
68.66
189.28
8.40
95.20
21.28
33.13
0.48
15.44
F value
4.45
12.26
0.54
6.17
1.38
2.15
0.03
Pr(>F)
0.0159
0.0044
0.4749
0.0288
0.2632
0.1686
0.8628
> #summary(npk.aovE)
> print(xtable(npk.aovE),floating=FALSE)
N:P:K
Residuals
N
P
K
N:P
N:K
P:K
Residuals1
Df
1
4
1
1
1
1
1
1
12
Sum Sq
37.00
306.29
189.28
8.40
95.20
21.28
33.14
0.48
185.29
Mean Sq
37.00
76.57
189.28
8.40
95.20
21.28
33.14
0.48
15.44
F value
0.48
Pr(>F)
0.5252
12.26
0.54
6.17
1.38
2.15
0.03
0.0044
0.4749
0.0288
0.2632
0.1686
0.8628
> print(xtable(summary(npk.aovE)),floating=FALSE)
N:P:K
Residuals
N
P
K
N:P
N:K
P:K
Residuals1
2.7
>
>
>
>
>
>
>
Df
1
4
1
1
1
1
1
1
12
Sum Sq
37.00
306.29
189.28
8.40
95.20
21.28
33.14
0.48
185.29
Mean Sq
37.00
76.57
189.28
8.40
95.20
21.28
33.14
0.48
15.44
F value
0.48
Pr(>F)
0.5252
12.26
0.54
6.17
1.38
2.15
0.03
0.0044
0.4749
0.0288
0.2632
0.1686
0.8628
More lm
## Demonstrate lm
## Taken from help(lm) in R 1.1.1
## Annette Dobson (1990) "An Introduction to Generalized Linear Models".
## Page 9: Plant Weight Data.
ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2,10,20, labels=c("Ctl","Trt"))
5
Estimate
5.0320
-0.3710
Std. Error
0.2202
0.3114
t value
22.85
-1.19
Pr(>|t|)
0.0000
0.2490
> print(xtable(anova(lm.D9)),floating=FALSE)
group
Residuals
2.8
>
>
>
>
>
>
>
>
>
Df
1
18
Sum Sq
0.69
8.73
Mean Sq
0.69
0.48
F value
1.42
Pr(>F)
0.2490
More glm
## Demonstrate glm
## Taken from help(glm) in R 1.1.1
## Annette Dobson (1990) "An Introduction to Generalized Linear Models".
## Page 93: Randomized Controlled Trial :
counts <- c(18,17,15,20,10,20,25,13,12)
outcome <- gl(3,1,9)
treatment <- gl(3,3)
d.AD <- data.frame(treatment, outcome, counts)
glm.D93 <- glm(counts ~ outcome + treatment, family=poisson())
> print(xtable(glm.D93,align="r|llrc"),floating=FALSE)
(Intercept)
outcome2
outcome3
treatment2
treatment3
2.9
Estimate
3.0445
-0.4543
-0.2930
0.0000
0.0000
Std. Error
0.1709
0.2022
0.1927
0.2000
0.2000
z value
17.81
-2.25
-1.52
0.00
0.00
Pr(>|z|)
0.0000
0.0246
0.1285
1.0000
1.0000
prcomp
> if(require(stats,quietly=TRUE)) {
+
## Demonstrate prcomp
+
## Taken from help(prcomp) in mva package of R 1.1.1
+
data(USArrests)
+
pr1 <- prcomp(USArrests)
+ }
> if(require(stats,quietly=TRUE)) {
+
print(xtable(pr1),floating=FALSE)
+ }
6
Murder
Assault
UrbanPop
Rape
>
PC1
0.0417
0.9952
0.0463
0.0752
PC2
-0.0448
-0.0588
0.9769
0.2007
PC3
0.0799
-0.0676
-0.2005
0.9741
PC4
-0.9949
0.0389
-0.0582
0.0723
print(xtable(summary(pr1)),floating=FALSE)
Standard deviation
Proportion of Variance
Cumulative Proportion
>
>
>
>
#
#
#
#
PC1
83.7324
0.9655
0.9655
PC2
14.2124
0.0278
0.9933
PC3
6.4894
0.0058
0.9991
PC4
2.4828
0.0008
1.0000
## Demonstrate princomp
## Taken from help(princomp) in mva package of R 1.1.1
pr2 <- princomp(USArrests)
print(xtable(pr2))
2.10
Time series
print(temp.table,floating=FALSE)
1954
1955
1956
1957
1958
1959
1960
1961
1962
Jan
Feb
Mar
Apr
May
Jun
2
15
30
40
57
71
82
92
4
16
32
39
60
72
83
93
6
18
32
40
61
75
84
92
7
20
34
42
60
75
86
92
8
21
36
42
62
75
86
92
9
20
36
45
64
76
87
92
Jul
1
10
21
37
45
64
78
87
94
Aug
0
12
21
37
46
66
79
87
98
Sep
-1
13
21
40
49
69
79
88
99
Oct
-1
13
24
39
51
68
80
89
99
Nov
-1
12
26
40
53
70
80
92
Dec
0
15
27
39
56
70
81
91
Sanitization
1
2
3
4
5
6
7
8
9
10
11
12
Name
Ampersand
Greater than
Less than
Underscore
Per cent
Dollar
Backslash
Hash
Caret
Tilde
Left brace
Right brace
%
$
\
#
^
{
}
label
Value is 101
Value is 102
Value is 103
1
2
3
3.1
&>< %$\#^{}
&
>
<
Markup in tables
Markup can be kept in tables, including column and row names, by using a
custom sanitize.text.function:
>
>
>
>
yt1
R2
0.90
2
R
0.89
F-stat
200.00
S.E.E
0.04
DW
2.00
You can also have sanitize functions that are specific to column or row names.
In the table below, the row name is not sanitized but column names and table
elements are:
4
4.1
>
Format examples
Adding a centering environment
print(xtable(lm.D9,caption="\\tt latex.environments=NULL"),latex.environments=NULL)
8
(Intercept)
groupTrt
Income (US$)
$1,000
Estimate
5.0320
-0.3710
Expenses (US$)
$900
Std. Error
0.2202
0.3114
t value
22.85
-1.19
Profit (US$)
$100
Pr(>|t|)
0.0000
0.2490
Table 1: latex.environments=NULL
>
print(xtable(lm.D9,caption="\\tt latex.environments=\"\""),latex.environments="")
(Intercept)
groupTrt
Estimate
5.0320
-0.3710
Std. Error
0.2202
0.3114
t value
22.85
-1.19
Pr(>|t|)
0.0000
0.2490
Table 2: latex.environments=""
>
print(xtable(lm.D9,caption="\\tt latex.environments=\"center\""),latex.environments="c
4.2
Column alignment
1
2
3
4
5
6
7
8
9
10
4.2.1
grade
6
7
5
3
8
5
8
4
6
7
sex
M
M
F
M
M
M
F
M
M
M
disadvg
YES
NO
YES
YES
YES
NO
YES
YES
NO
YES
ethnicty
HISPANIC
BLACK
HISPANIC
HISPANIC
WHITE
BLACK
HISPANIC
BLACK
WHITE
HISPANIC
tlimth
43
88
34
65
75
74
72
79
88
87
(Intercept)
groupTrt
Estimate
5.0320
-0.3710
Std. Error
0.2202
0.3114
t value
22.85
-1.19
Pr(>|t|)
0.0000
0.2490
Table 3: latex.environments="center"
1
2
3
4
5
6
7
8
9
10
4.2.2
grade
6
7
5
3
8
5
8
4
6
7
sex
M
M
F
M
M
M
F
M
M
M
disadvg
YES
NO
YES
YES
YES
NO
YES
YES
NO
YES
ethnicty
HISPANIC
BLACK
HISPANIC
HISPANIC
WHITE
BLACK
HISPANIC
BLACK
WHITE
HISPANIC
tlimth
43
88
34
65
75
74
72
79
88
87
1
2
3
4
5
6
7
8
9
10
4.3
grade
6
7
5
3
8
5
8
4
6
7
sex
M
M
F
M
M
M
F
M
M
M
disadvg
YES
NO
YES
YES
YES
NO
YES
YES
NO
YES
ethnicty
HISPANIC
BLACK
HISPANIC
HISPANIC
WHITE
BLACK
HISPANIC
BLACK
WHITE
HISPANIC
Significant digits
10
tlimth
43
88
34
65
75
74
72
79
88
87
grade
1
6
2
7
3
5
4
3
5
8
6
5
7
8
8
4
9
6
10
7
or one for
sex disadvg
ethnicty
M
YES
HISPANIC
M
NO
BLACK
F
YES
HISPANIC
M
YES
HISPANIC
M
YES
WHITE
M
NO
BLACK
F
YES
HISPANIC
M
YES
BLACK
M
NO
WHITE
M
YES
HISPANIC
each column, counting the row names
tlimth
43
88
34
65
75
74
72
79
88
87
ethnicty
HISPANIC
BLACK
HISPANIC
HISPANIC
WHITE
BLACK
HISPANIC
BLACK
WHITE
HISPANIC
tlimth
43
88
34
65
75
74
72
79
88
87
1
2
3
4
5
6
7
8
9
10
grade
6
7
5
3
8
5
8
4
6
7
sex
M
M
F
M
M
M
F
M
M
M
disadvg
YES
NO
YES
YES
YES
NO
YES
YES
NO
YES
ethnicty
HISPANIC
BLACK
HISPANIC
HISPANIC
WHITE
BLACK
HISPANIC
BLACK
WHITE
HISPANIC
11
tlimth
43
88
34
65
75
74
72
79
88
87
4.4
> print((tli.table),include.rownames=FALSE,floating=FALSE)
grade sex disadvg
ethnicty
tlimth
6 M
YES
HISPANIC
43
7 M
NO
BLACK
88
5 F
YES
HISPANIC
34
3 M
YES
HISPANIC
65
8 M
YES
WHITE
75
5 M
NO
BLACK
74
8 F
YES
HISPANIC
72
4 M
YES
BLACK
79
6 M
NO
WHITE
88
7 M
YES
HISPANIC
87
If you want a vertical line on the left, you need to change the align attribute.
> align(tli.table) <- "|r|r|lp{3cm}l|r|"
> print((tli.table),include.rownames=FALSE,floating=FALSE)
grade sex
6 M
7 M
5 F
3 M
8 M
5 M
8 F
4 M
6 M
7 M
Revert the
disadvg
ethnicty
YES
HISPANIC
NO
BLACK
YES
HISPANIC
YES
HISPANIC
YES
WHITE
NO
BLACK
YES
HISPANIC
YES
BLACK
NO
WHITE
YES
HISPANIC
alignment to what is was before.
tlimth
43
88
34
65
75
74
72
79
88
87
4.5
> print((tli.table),include.colnames=FALSE,floating=FALSE)
12
1
2
3
4
5
6
7
8
9
10
Note
6
7
5
3
8
5
8
4
6
7
the
M YES
M NO
F YES
M YES
M YES
M NO
F YES
M YES
M NO
M YES
doubled header lines which
HISPANIC 43
BLACK
88
HISPANIC 34
HISPANIC 65
WHITE
75
BLACK
74
HISPANIC 72
BLACK
79
WHITE
88
HISPANIC 87
can be suppressed with, eg,
> print(tli.table,include.colnames=FALSE,floating=FALSE,hline.after=c(0,nrow(tli.table)))
1
2
3
4
5
6
7
8
9
10
4.6
6
7
5
3
8
5
8
4
6
7
M
M
F
M
M
M
F
M
M
M
YES
NO
YES
YES
YES
NO
YES
YES
NO
YES
HISPANIC
BLACK
HISPANIC
HISPANIC
WHITE
BLACK
HISPANIC
BLACK
WHITE
HISPANIC
43
88
34
65
75
74
72
79
88
87
> print((tli.table),include.colnames=FALSE,include.rownames=FALSE,floating=FALSE)
6
7
5
3
8
5
8
4
6
7
4.7
M
M
F
M
M
M
F
M
M
M
YES
NO
YES
YES
YES
NO
YES
YES
NO
YES
HISPANIC
BLACK
HISPANIC
HISPANIC
WHITE
BLACK
HISPANIC
BLACK
WHITE
HISPANIC
43
88
34
65
75
74
72
79
88
87
13
4.8.1
sex
disadvg
ethnicty
M
M
F
M
M
M
F
M
M
M
YES
NO
YES
YES
YES
NO
YES
YES
NO
YES
HISPANIC
BLACK
HISPANIC
HISPANIC
WHITE
BLACK
HISPANIC
BLACK
WHITE
HISPANIC
tlimth
grade
10 9 8 7 6 5 4 3 2 1
4.8
6
7
5
3
8
5
8
4
6
7
43
88
34
65
75
74
72
79
88
87
Horizontal lines
Line locations
Use the hline.after argument to specify the position of the horizontal lines.
> print(xtable(anova(glm.D93)),hline.after=c(1),floating=FALSE)
NULL
outcome
treatment
4.8.2
Df
Deviance
2
2
5.45
0.00
Resid. Df
8
6
4
Resid. Dev
10.58
5.13
5.13
Line styles
The LATEXpackage booktabs can be used to specify different line style tags
for top, middle, and bottom lines. Specifying booktabs = TRUE will lead to
separate tags being generated for the three line types.
Insert \usepackage{booktabs} in your LATEXpreamble and define the toprule,
midrule, and bottomrule tags to specify the line styles. By default, when
no value is given for hline.after, a toprule will be drawn above the table, a midrule after the table headings and a bottomrule below the table.
The width of the top and bottom rules can be set by supplying a value to
\heavyrulewidth. The width of the midrules can be set by supplying a value
to \lightrulewidth. The following tables have \heavyrulewidth = 2pt and
\lightrulewidth = 0.5pt, to ensure the difference in weight is noticeable.
There is no support for \cmidrule or \specialrule although they are part
of the booktabs package.
> print(tli.table, booktabs=TRUE, floating = FALSE)
14
grade
1
2
3
4
5
6
7
8
9
10
6
7
5
3
8
5
8
4
6
7
sex
disadvg
ethnicty
M
M
F
M
M
M
F
M
M
M
YES
NO
YES
YES
YES
NO
YES
YES
NO
YES
HISPANIC
BLACK
HISPANIC
HISPANIC
WHITE
BLACK
HISPANIC
BLACK
WHITE
HISPANIC
tlimth
43
88
34
65
75
74
72
79
88
87
2
3
4
5
2
3
4
5
7
8
9
10
4.9
Table-level LATEX
> print(xtable(anova(glm.D93)),size="small",floating=FALSE)
NULL
outcome
treatment
4.10
Df
Deviance
2
2
5.45
0.00
Resid. Df
8
6
4
Resid. Dev
10.58
5.13
5.13
Long tables
15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
1
0.85
0.72
0.74
2.06
0.89
-0.13
0.90
-1.07
-0.68
0.42
-0.12
-0.77
1.54
1.33
-0.27
0.10
0.49
-1.22
1.18
-0.18
-0.30
1.36
2.06
0.94
-0.49
-0.41
0.27
0.96
1.20
-0.19
-0.01
0.93
-0.10
-1.22
-0.40
-0.60
1.43
2
-0.33
0.03
-0.26
-0.55
-1.91
-1.06
-0.70
-0.13
1.09
1.35
0.07
0.42
-0.09
1.30
-1.63
0.48
0.40
1.03
-3.20
-0.84
0.35
0.16
0.52
-0.84
-0.63
-1.40
0.67
-0.85
-1.42
-0.62
0.11
1.96
0.21
0.25
1.29
-0.44
0.50
3
0.13
0.67
-0.98
-0.64
0.21
-1.65
0.96
-0.98
1.35
-0.43
-1.01
-0.29
-0.31
-1.23
0.55
-2.35
-0.89
-2.01
2.04
-1.24
-1.39
-1.44
1.44
-0.37
-1.05
-0.35
-0.93
0.31
-0.86
-0.60
0.89
0.55
-0.28
1.24
0.04
-2.34
-1.79
4
1.27
1.73
1.24
0.56
-0.46
0.45
-1.38
1.27
-0.35
0.35
-0.67
0.72
0.66
-0.48
-0.37
0.23
-0.21
-0.51
-1.04
-1.17
0.32
0.02
-1.55
-0.37
0.20
0.12
1.06
-0.75
-0.84
-0.29
-1.02
0.01
0.33
-1.74
1.14
0.18
-0.23
5
-0.60
2.38
0.33
0.50
0.06
-0.36
-0.82
2.14
2.36
-0.25
0.93
0.36
-1.45
-0.23
-0.15
0.40
-1.06
-0.32
-0.46
-0.88
-0.24
-0.23
0.20
-0.83
1.31
-0.38
-0.41
0.07
0.18
-0.53
-0.20
2.11
2.21
1.64
0.21
-0.03
1.11
16
6
0.98
-1.19
-1.37
-1.83
-0.24
0.15
-0.14
0.15
0.41
-0.99
1.10
-2.49
1.02
0.57
1.02
-0.53
1.55
-0.73
0.38
1.61
-0.91
-0.25
0.25
3.50
-1.45
1.45
0.26
0.04
0.58
-0.79
1.87
0.27
-1.25
-0.70
-0.75
0.10
1.03
7
-0.50
0.22
-0.39
-0.08
-0.70
0.48
0.19
-0.31
-1.38
-0.70
0.43
1.89
-1.00
0.29
1.43
0.51
0.93
-1.42
-1.07
-0.66
0.71
1.27
-1.07
1.10
0.57
-0.32
-0.46
-0.10
0.18
0.13
1.37
-1.30
0.42
-0.12
-2.25
0.07
1.14
8
0.12
-3.50
0.08
-0.98
-0.14
0.49
-0.88
1.09
-1.08
0.65
-1.57
0.11
0.05
0.20
0.19
0.49
-0.28
-0.48
1.21
0.31
-0.93
1.58
-0.34
-0.51
-0.63
-0.19
1.33
1.42
-0.63
-1.54
-0.10
2.75
1.20
-0.70
-1.49
0.13
1.07
9
-1.57
-1.73
0.28
0.28
0.40
-2.32
-0.89
-1.02
-0.31
-0.55
-0.02
0.89
0.54
-0.61
-0.89
1.33
-0.25
0.47
-0.28
0.87
0.96
-1.54
-0.72
1.47
-1.05
0.38
0.53
0.14
0.07
0.22
-0.42
-0.04
0.53
-0.46
1.04
0.60
0.59
10
0.64
-0.25
-0.40
-0.18
-0.99
0.91
-0.59
-0.19
0.41
-0.15
-0.03
-0.84
1.22
2.05
0.53
-2.21
1.12
0.46
-0.29
0.06
1.31
-1.42
-0.79
1.10
0.43
0.07
0.50
2.24
1.02
0.86
-0.05
0.47
0.93
-0.81
-0.92
-0.08
-0.60
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
1.26
0.04
0.60
-1.13
-1.07
0.30
-1.79
1.28
0.59
2.21
2.85
1.49
1.07
0.29
0.27
-1.75
0.28
-1.01
-0.09
1.33
2.09
0.53
-0.24
2.08
-0.11
1.21
0.07
1.17
0.79
0.13
0.19
-0.37
0.17
0.20
-0.88
-0.03
-0.31
-0.02
-0.25
0.68
0.36
-0.31
0.45
-0.67
-0.89
-1.40
0.36
0.57
0.14
-1.38
-1.86
-1.86
-0.40
-0.35
0.07
-1.42
1.98
0.58
0.23
0.14
-2.34
1.59
1.41
-0.74
-0.21
1.12
0.10
0.56
-0.05
-0.62
-0.68
-0.76
-0.20
0.28
0.37
0.57
0.72
-0.36
0.35
0.85
2.29
-0.32
1.09
0.47
0.07
0.88
0.15
0.22
0.30
0.80
0.16
1.64
-0.32
-1.03
-0.09
2.43
-0.69
0.63
-0.83
0.16
-0.80
0.94
-0.49
2.64
0.87
-0.64
0.27
0.67
-1.79
-1.36
-0.48
0.27
1.83
-0.83
1.31
0.49
-0.66
-0.38
2.08
2.10
-0.94
1.73
0.75
-0.78
1.28
2.37
0.64
-0.57
-0.78
-0.63
1.43
1.10
-0.64
-1.77
-0.57
0.53
-0.89
1.20
0.35
-1.42
0.69
-0.44
-1.02
-0.10
0.10
-1.51
0.63
-0.92
-0.27
-1.31
0.67
-1.07
1.87
-0.09
0.50
-0.85
0.76
-0.91
-0.41
0.37
1.18
-0.08
0.28
-0.69
-0.48
0.38
0.90
-0.29
-0.51
0.13
0.09
-0.36
-0.45
-0.23
-1.02
1.54
-0.34
-0.97
1.40
-0.14
-0.56
-0.77
0.83
0.90
0.79
1.92
1.03
0.04
-0.81
-0.11
-0.48
-0.45
-0.23
-0.78
-0.73
-1.10
0.86
0.55
0.80
-0.47
0.67
-0.36
0.17
0.35
1.09
0.04
0.66
0.39
-1.37
-0.14
-1.60
-0.35
-0.35
0.42
0.20
1.07
-0.97
-0.26
2.10
-0.51
0.34
-1.39
1.31
-2.32
0.42
2.02
2.67
-1.29
-1.32
0.26
17
-0.37
1.85
0.94
1.32
1.03
0.85
0.69
-1.06
1.36
-1.17
-0.08
0.37
0.51
1.74
0.07
-0.44
1.61
0.35
-1.55
0.32
-0.57
0.28
-0.28
-1.88
-0.59
2.41
-0.58
0.66
1.84
-0.30
-1.31
0.03
0.42
-0.67
-0.56
-0.54
0.08
1.63
-0.01
-0.88
-0.70
-1.05
0.71
0.70
-0.02
-0.07
-0.02
1.31
-0.28
0.29
1.11
-0.67
0.17
-0.96
-0.07
0.68
0.21
-1.08
-1.28
1.48
-1.13
0.35
0.28
0.40
1.26
-0.21
-0.83
0.46
-0.18
0.06
0.48
0.69
-2.07
1.54
-0.92
-0.24
-0.69
1.12
-1.27
-0.87
1.64
1.75
1.45
-0.84
1.22
-0.04
-0.81
-0.05
1.92
-0.00
1.37
-1.05
0.66
-2.60
-0.50
-1.56
-0.83
-0.04
1.50
-1.24
-0.88
0.48
0.00
1.84
-0.82
-1.41
0.93
1.32
-0.25
-0.20
2.54
-0.23
0.29
-1.44
-2.50
-0.05
0.90
-0.42
0.46
0.61
0.26
-0.58
-0.37
0.09
-1.38
-0.88
-0.79
1.68
-1.38
-0.94
-1.76
-0.97
0.24
0.75
1.32
0.45
-0.64
1.17
0.57
1.32
0.68
1.63
0.30
-0.26
0.81
-1.55
0.36
-0.84
1.26
-0.29
0.64
1.10
0.72
0.27
0.60
0.91
-0.31
-1.77
0.65
0.36
0.87
0.09
0.16
-0.27
-2.03
1.77
-1.28
-0.03
-1.31
1.28
-0.28
-0.38
0.39
0.31
-0.57
-0.62
-2.06
0.72
0.94
0.98
-0.50
0.20
0.29
-0.36
1.04
0.64
-0.82
-0.78
0.28
0.40
-0.34
-0.83
-0.20
-0.36
-1.11
0.74
2.64
-0.32
2.79
2.41
0.03
0.89
-0.46
-0.15
0.64
-0.84
1.17
-0.97
0.17
0.33
-0.47
1.56
-0.98
-0.32
0.13
0.30
1.40
-0.89
0.36
-0.59
-0.80
0.07
-0.87
-1.08
0.18
-0.45
0.46
-0.25
1.63
0.10
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
4.11
-0.65
1.88
-0.30
-0.49
0.71
-0.89
-1.35
0.05
-0.22
-0.29
0.87
1.64
0.68
0.00
-0.56
-0.84
-1.71
-0.52
-1.68
-0.19
-0.38
-0.20
-0.42
-0.77
1.17
0.53
-0.64
1.33
0.24
0.96
-0.09
0.88
2.71
-0.58
Table 4:
-0.18
0.37 -0.18
1.37 -0.54 -0.37
-0.57
0.17
0.38
-0.02 -1.96 -0.86
-0.84 -0.79 -1.51
0.96
1.04 -0.43
-1.47
0.48
0.57
1.45 -2.99 -0.81
1.01 -0.52
1.10
-0.31
0.71 -1.05
1.11 -1.58
1.29
0.88
0.93 -1.16
1.88 -1.64
0.34
0.26 -1.48
1.05
-1.34
0.46
0.52
0.51 -0.32 -0.77
-1.80 -0.07
0.35
Example of longtable
0.44
-0.26
0.02
-0.03
-0.54
-1.25
1.01
-1.04
-2.53
-0.56
0.13
0.12
0.99
-0.72
0.01
-0.26
-0.02
-0.85
-0.52
0.60
-0.20
0.24
0.97
-0.70
1.04
1.33
-0.35
-0.55
-0.64
1.56
-1.99
-0.50
0.91
-0.45
Sideways tables
Remember to insert \usepackage{rotating} in your LaTeX preamble. Sideways tables cant be forced in place with the H specifier, but you can use the
\clearpage command to get them fairly nearby.
> x <- x[1:30,]
> x.small <- xtable(x,label='tabsmall',caption='A sideways table')
> print(x.small,floating.environment='sidewaystable')
18
19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
0.85
0.72
0.74
2.06
0.89
-0.13
0.90
-1.07
-0.68
0.42
-0.12
-0.77
1.54
1.33
-0.27
0.10
0.49
-1.22
1.18
-0.18
-0.30
1.36
2.06
0.94
-0.49
-0.41
0.27
0.96
1.20
-0.19
2
-0.33
0.03
-0.26
-0.55
-1.91
-1.06
-0.70
-0.13
1.09
1.35
0.07
0.42
-0.09
1.30
-1.63
0.48
0.40
1.03
-3.20
-0.84
0.35
0.16
0.52
-0.84
-0.63
-1.40
0.67
-0.85
-1.42
-0.62
3
0.13
0.67
-0.98
-0.64
0.21
-1.65
0.96
-0.98
1.35
-0.43
-1.01
-0.29
-0.31
-1.23
0.55
-2.35
-0.89
-2.01
2.04
-1.24
-1.39
-1.44
1.44
-0.37
-1.05
-0.35
-0.93
0.31
-0.86
-0.60
5
-0.60
2.38
0.33
0.50
0.06
-0.36
-0.82
2.14
2.36
-0.25
0.93
0.36
-1.45
-0.23
-0.15
0.40
-1.06
-0.32
-0.46
-0.88
-0.24
-0.23
0.20
-0.83
1.31
-0.38
-0.41
0.07
0.18
-0.53
6
0.98
-1.19
-1.37
-1.83
-0.24
0.15
-0.14
0.15
0.41
-0.99
1.10
-2.49
1.02
0.57
1.02
-0.53
1.55
-0.73
0.38
1.61
-0.91
-0.25
0.25
3.50
-1.45
1.45
0.26
0.04
0.58
-0.79
7
-0.50
0.22
-0.39
-0.08
-0.70
0.48
0.19
-0.31
-1.38
-0.70
0.43
1.89
-1.00
0.29
1.43
0.51
0.93
-1.42
-1.07
-0.66
0.71
1.27
-1.07
1.10
0.57
-0.32
-0.46
-0.10
0.18
0.13
Table 5: A sideways table
4
1.27
1.73
1.24
0.56
-0.46
0.45
-1.38
1.27
-0.35
0.35
-0.67
0.72
0.66
-0.48
-0.37
0.23
-0.21
-0.51
-1.04
-1.17
0.32
0.02
-1.55
-0.37
0.20
0.12
1.06
-0.75
-0.84
-0.29
8
0.12
-3.50
0.08
-0.98
-0.14
0.49
-0.88
1.09
-1.08
0.65
-1.57
0.11
0.05
0.20
0.19
0.49
-0.28
-0.48
1.21
0.31
-0.93
1.58
-0.34
-0.51
-0.63
-0.19
1.33
1.42
-0.63
-1.54
9
-1.57
-1.73
0.28
0.28
0.40
-2.32
-0.89
-1.02
-0.31
-0.55
-0.02
0.89
0.54
-0.61
-0.89
1.33
-0.25
0.47
-0.28
0.87
0.96
-1.54
-0.72
1.47
-1.05
0.38
0.53
0.14
0.07
0.22
10
0.64
-0.25
-0.40
-0.18
-0.99
0.91
-0.59
-0.19
0.41
-0.15
-0.03
-0.84
1.22
2.05
0.53
-2.21
1.12
0.46
-0.29
0.06
1.31
-1.42
-0.79
1.10
0.43
0.07
0.50
2.24
1.02
0.86
4.12
Rescaled tables
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
0.85
0.72
0.74
2.06
0.89
-0.13
0.90
-1.07
-0.68
0.42
-0.12
-0.77
1.54
1.33
-0.27
0.10
0.49
-1.22
1.18
-0.18
2
-0.33
0.03
-0.26
-0.55
-1.91
-1.06
-0.70
-0.13
1.09
1.35
0.07
0.42
-0.09
1.30
-1.63
0.48
0.40
1.03
-3.20
-0.84
3
0.13
0.67
-0.98
-0.64
0.21
-1.65
0.96
-0.98
1.35
-0.43
-1.01
-0.29
-0.31
-1.23
0.55
-2.35
-0.89
-2.01
2.04
-1.24
4
1.27
1.73
1.24
0.56
-0.46
0.45
-1.38
1.27
-0.35
0.35
-0.67
0.72
0.66
-0.48
-0.37
0.23
-0.21
-0.51
-1.04
-1.17
5
-0.60
2.38
0.33
0.50
0.06
-0.36
-0.82
2.14
2.36
-0.25
0.93
0.36
-1.45
-0.23
-0.15
0.40
-1.06
-0.32
-0.46
-0.88
6
0.98
-1.19
-1.37
-1.83
-0.24
0.15
-0.14
0.15
0.41
-0.99
1.10
-2.49
1.02
0.57
1.02
-0.53
1.55
-0.73
0.38
1.61
7
-0.50
0.22
-0.39
-0.08
-0.70
0.48
0.19
-0.31
-1.38
-0.70
0.43
1.89
-1.00
0.29
1.43
0.51
0.93
-1.42
-1.07
-0.66
8
0.12
-3.50
0.08
-0.98
-0.14
0.49
-0.88
1.09
-1.08
0.65
-1.57
0.11
0.05
0.20
0.19
0.49
-0.28
-0.48
1.21
0.31
9
-1.57
-1.73
0.28
0.28
0.40
-2.32
-0.89
-1.02
-0.31
-0.55
-0.02
0.89
0.54
-0.61
-0.89
1.33
-0.25
0.47
-0.28
0.87
10
0.64
-0.25
-0.40
-0.18
-0.99
0.91
-0.59
-0.19
0.41
-0.15
-0.03
-0.84
1.22
2.05
0.53
-2.21
1.12
0.46
-0.29
0.06
4.13
Table Width
The tabularx tabular environment provides more alignment options, and has
a width argument to specify the table width.
Remember to insert \usepackage{tabularx} in your LATEXpreamble.
> df.width <- data.frame(
+
"label 1 with much more text than is needed" = c("item 1", "A"),
+
"label 2 is also very long" = c("item 2","B"),
+
"label 3" = c("item 3","C"),
+
"label 4" = c("item 4 but again with too much text","D"),
+
check.names = FALSE)
> x.width <- xtable(df.width,
+
caption="Using the 'tabularx' environment")
> align(x.width) <- "|l|X|X|l|X|"
> print(x.width, tabular.environment="tabularx",
+
width="\\textwidth")
20
label 3
label 4
item 2
item 3
Suppressing Printing
By default the print method will print the LaTeX or HTML to standard output
and also return the character strings invisibly. The printing to standard output
can be suppressed by specifying print.results = FALSE.
> x.out <- print(tli.table, print.results = FALSE)
Formatted output can also be captured without printing with the toLatex
method. This function returns an object of class "Latex".
> x.ltx <- toLatex(tli.table)
> class(x.ltx)
[1] "Latex"
> x.ltx
% latex table generated in R 3.1.1 by xtable 1.7-4 package
% Fri Sep 12 10:38:15 2014
\begin{table}[ht]
\centering
\begin{tabular}{|rr|lp{3cm}l|r|}
\hline
& grade & sex & disadvg & ethnicty & tlimth \\
\hline
1 & 6 & M & YES & HISPANIC & 43 \\
2 & 7 & M & NO & BLACK & 88 \\
3 &
5 & F & YES & HISPANIC & 34 \\
4 &
3 & M & YES & HISPANIC &
65 \\
5 &
8 & M & YES & WHITE &
75 \\
6 & 5 & M & NO & BLACK & 74 \\
7 & 8 & F & YES & HISPANIC & 72 \\
8 &
4 & M & YES & BLACK & 79 \\
9 &
6 & M & NO & WHITE &
88 \\
10 &
7 & M & YES & HISPANIC &
87 \\
\hline
\end{tabular}
\end{table}
21
Acknowledgements
Most of the examples in this gallery are taken from the xtable documentation.
R Session information
> toLatex(sessionInfo())
R version 3.1.1 (2014-07-10), i386-w64-mingw32
Locale: LC_COLLATE=C, LC_CTYPE=English_New Zealand.1252,
LC_MONETARY=English_New Zealand.1252, LC_NUMERIC=C,
LC_TIME=English_New Zealand.1252
Base packages: base, datasets, grDevices, graphics, methods, stats, utils
Other packages: xtable 1.7-4
Loaded via a namespace (and not attached): tools 3.1.1
22