Learn R Programming

sfsmisc (version 1.1-19)

mat2tex: Produce LaTeX commands to print a matrix

Description

“Translate” an R matrix (like object) into a LaTeX table, using \begin{tabular} ....

Usage

mat2tex(x, file= "mat.tex", envir = "tabular",
        nam.center = "l", col.center = "c",
        append = TRUE, digits = 3, title)

Value

No value is returned. This function, when used correctly, only writes LaTeX commands to a file.

Arguments

x

a matrix

file

names the file to which LaTeX commands should be written

envir

a string, the LaTeX environment name; default is "tabular"; useful maybe "array", or other versions of tabular environments.

nam.center

character specifying row names should be center; default "l".

col.center

character (vector) specifying how the columns should be centered; must have values from c("l","c","r"); defaults to "c".

append

logical; if FALSE, will destroy the file file before writing commands to it; otherwise (by default), simply adds commands at the end of file file.

digits

integer; setting of options(digits=..) for purpose of number representation.

title

a string, possibly using LaTeX commands, which will span the columns of the LaTeX matrix

Author

For S: Vincent Carey vjcarey@sphunix.sph.jhu.edu, from a post on Feb.19, 1991 to S-news. Port to R (and a bit more) by Martin Maechler maechler@stat.math.ethz.ch.

See Also

latex in package Hmisc is more flexible (but may surprise by its auto-printing ..).

Examples

Run this code
mex <- matrix(c(pi,pi/2,pi/4,exp(1),exp(2),exp(3)),nrow=2, byrow=TRUE,
               dimnames = list(c("$\\pi$","$e$"), c("a","b","c")))
mat2tex(mex, file = print(tf <- tempfile("mat", , ".tex")),
        title="$\\pi, e$, etc." )

## The last command produces the file "mat.tex" containing

##>  \begin{tabular} {| l|| c| c| c|}
##>  \multicolumn{ 4 }{c}{ $\pi, e$, etc. } \\ \hline
##>     \  & a & b & c \\ \hline \hline
##>  $\pi$ & 3.14 & 1.57 & 0.785 \\ \hline
##>  $e$ & 2.72 & 7.39 & 20.1 \\ \hline
##>  \end{tabular}

## Now you have to properly embed the contents of this file
## in a LaTeX document -- for example, you will need a
## preamble, the \begin{document} statement, etc.

## Note that the backslash needs protection in dimnames
## or title actions.

mat2tex(mex, stdout(), col.center = c("r","r","c"))

Run the code above in your browser using DataLab