Generating LATEXTables in R
Many R users prepare reports, documents or research papers using LATEXtype-setting system. Since typing tabular data structures in LATEXby hand consumes too much construction time, some packages were developed for automatic creation or conversion of R datasets. In this short entry, we show the usage and output of xtable function in xtable package. First install the package if it is not already installed:
After installation, the package is loaded once in the current session:
Now, suppose that we have a data frame and we want to export it as a LATEXtable. Let’s create a random dataset with three variables, x,y and z.
> y<-round(runif(10,0,100))
> z<-round(runif(10,0,100))
> data <- as.data.frame ( cbind(x,y,z) )
> data
x y z
1 26 86 44
2 81 13 22
3 39 27 57
4 32 57 56
5 50 15 31
6 34 100 98
7 54 46 24
8 42 55 42
9 62 91 77
10 5 73 25
Calling the function xtable simply on the data that we have just created produces some output:
% Sun Aug 18 23:40:23 2013
\begin{table}[ht]
\centering
\begin{tabular}{rrrr}
\hline
& x & y & z \\
\hline
1 & 26.00 & 86.00 & 44.00 \\
2 & 81.00 & 13.00 & 22.00 \\
3 & 39.00 & 27.00 & 57.00 \\
4 & 32.00 & 57.00 & 56.00 \\
5 & 50.00 & 15.00 & 31.00 \\
6 & 34.00 & 100.00 & 98.00 \\
7 & 54.00 & 46.00 & 24.00 \\
8 & 42.00 & 55.00 & 42.00 \\
9 & 62.00 & 91.00 & 77.00 \\
10 & 5.00 & 73.00 & 25.00 \\
\hline
\end{tabular}
\end{table}
The generated output can easly be integrated with an LATEXfile. This table is shown as
x | y | z | |
1 | 26.00 | 86.00 | 44.00 |
2 | 81.00 | 13.00 | 22.00 |
3 | 39.00 | 27.00 | 57.00 |
4 | 32.00 | 57.00 | 56.00 |
5 | 50.00 | 15.00 | 31.00 |
6 | 34.00 | 100.00 | 98.00 |
7 | 54.00 | 46.00 | 24.00 |
8 | 42.00 | 55.00 | 42.00 |
9 | 62.00 | 91.00 | 77.00 |
10 | 5.00 | 73.00 | 25.00 |
This is an example of xtable function call with default parameters. In the next example, we put a caption.
x | y | z | |
1 | 26.00 | 86.00 | 44.00 |
2 | 81.00 | 13.00 | 22.00 |
3 | 39.00 | 27.00 | 57.00 |
4 | 32.00 | 57.00 | 56.00 |
5 | 50.00 | 15.00 | 31.00 |
6 | 34.00 | 100.00 | 98.00 |
7 | 54.00 | 46.00 | 24.00 |
8 | 42.00 | 55.00 | 42.00 |
9 | 62.00 | 91.00 | 77.00 |
10 | 5.00 | 73.00 | 25.00 |
Let’s put a label on it:
x | y | z | |
1 | 26.00 | 86.00 | 44.00 |
2 | 81.00 | 13.00 | 22.00 |
3 | 39.00 | 27.00 | 57.00 |
4 | 32.00 | 57.00 | 56.00 |
5 | 50.00 | 15.00 | 31.00 |
6 | 34.00 | 100.00 | 98.00 |
7 | 54.00 | 46.00 | 24.00 |
8 | 42.00 | 55.00 | 42.00 |
9 | 62.00 | 91.00 | 77.00 |
10 | 5.00 | 73.00 | 25.00 |
And this function call shows the numbers with three fractional digits.