How to print a table in R using ascii, html or markdown formatting?

library(xtable) library(rattle) set.seed(42) obs <- sample(1:nrow(weatherAUS), 5) vars <- 2:7 xtable(weatherAUS[obs, vars]) 

I get the following output with code, why can't I get a formatted table?

 % latex table generated in R 2.15.1 by xtable 1.7-1 package % Sat Apr 6 17:02:37 2013 \begin{table}[ht] \centering \begin{tabular}{rlrrrrr} \hline & Location & MinTemp & MaxTemp & Rainfall & Evaporation & Sunshine \\ \hline 60992 & Hobart & 5.60 & 13.00 & 7.60 & 1.60 & 3.10 \\ 62476 & Launceston & 7.40 & 13.50 & 8.80 & & \\ 19077 & Williamtown & 18.30 & 29.10 & 3.20 & 1.00 & 7.00 \\ 55366 & PerthAirport & 9.80 & 21.90 & 0.00 & 3.60 & 9.80 \\ 42784 & GoldCoast & 23.40 & 30.40 & 0.00 & & \\ \hline \end{tabular} \end{table} 
+4
source share
1 answer

What you got from xtable is pretty formatted, but since it is in LaTeX syntax, it would be wise to run through the LaTeX compiler, like pdflatex . This will return the PDF as follows:

compiled pdf file

If you want a formatted table inside the R console, so a fairly readable version of the print.data.frame standard, you can try installing the ascii package or my pander . Examples:

  • The main ascii call:

     > library(ascii) > ascii(weatherAUS[obs, vars]) |=================================================================================== 1.1+| h| Location h| MinTemp h| MaxTemp h| Rainfall h| Evaporation h| Sunshine | 60992 | Hobart | 5.60 | 13.00 | 7.60 | 1.60 | 3.10 | 62476 | Launceston | 7.40 | 13.50 | 8.80 | | | 19077 | Williamtown | 18.30 | 29.10 | 3.20 | 1.00 | 7.00 | 55366 | PerthAirport | 9.80 | 21.90 | 0.00 | 3.60 | 9.80 | 42784 | GoldCoast | 23.40 | 30.40 | 0.00 | | |=================================================================================== 
  • Call ascii to return a table, for example. reStructuredText format:

     > print(ascii(weatherAUS[obs, vars]), type = "rest") +-------+--------------+---------+---------+----------+-------------+----------+ | | Location | MinTemp | MaxTemp | Rainfall | Evaporation | Sunshine | +=======+==============+=========+=========+==========+=============+==========+ | 60992 | Hobart | 5.60 | 13.00 | 7.60 | 1.60 | 3.10 | +-------+--------------+---------+---------+----------+-------------+----------+ | 62476 | Launceston | 7.40 | 13.50 | 8.80 | | | +-------+--------------+---------+---------+----------+-------------+----------+ | 19077 | Williamtown | 18.30 | 29.10 | 3.20 | 1.00 | 7.00 | +-------+--------------+---------+---------+----------+-------------+----------+ | 55366 | PerthAirport | 9.80 | 21.90 | 0.00 | 3.60 | 9.80 | +-------+--------------+---------+---------+----------+-------------+----------+ | 42784 | GoldCoast | 23.40 | 30.40 | 0.00 | | | +-------+--------------+---------+---------+----------+-------------+----------+ 
  • Using pander to return a table in different markup formats:

     > library(pander) > panderOptions('table.split.table', Inf) > pander(weatherAUS[obs, vars]) -------------------------------------------------------------------------------- &nbsp; Location MinTemp MaxTemp Rainfall Evaporation Sunshine ----------- ------------ --------- --------- ---------- ------------- ---------- **60992** Hobart 5.6 13.0 7.6 1.6 3.1 **62476** Launceston 7.4 13.5 8.8 **19077** Williamtown 18.3 29.1 3.2 1.0 7.0 **55366** PerthAirport 9.8 21.9 0.0 3.6 9.8 **42784** GoldCoast 23.4 30.4 0.0 -------------------------------------------------------------------------------- 
  • Or in grid format:

     > pandoc.table(weatherAUS[obs, vars], style = 'grid') +-------------+--------------+-----------+-----------+------------+---------------+------------+ | &nbsp; | Location | MinTemp | MaxTemp | Rainfall | Evaporation | Sunshine | +=============+==============+===========+===========+============+===============+============+ | **60992** | Hobart | 5.6 | 13.0 | 7.6 | 1.6 | 3.1 | +-------------+--------------+-----------+-----------+------------+---------------+------------+ | **62476** | Launceston | 7.4 | 13.5 | 8.8 | | | +-------------+--------------+-----------+-----------+------------+---------------+------------+ | **19077** | Williamtown | 18.3 | 29.1 | 3.2 | 1.0 | 7.0 | +-------------+--------------+-----------+-----------+------------+---------------+------------+ | **55366** | PerthAirport | 9.8 | 21.9 | 0.0 | 3.6 | 9.8 | +-------------+--------------+-----------+-----------+------------+---------------+------------+ | **42784** | GoldCoast | 23.4 | 30.4 | 0.0 | | | +-------------+--------------+-----------+-----------+------------+---------------+------------+ 
  • More simple r format:

     > pandoc.table(weatherAUS[obs, vars], style = 'simple') &nbsp; Location MinTemp MaxTemp Rainfall Evaporation Sunshine ----------- ------------ --------- --------- ---------- ------------- ---------- **60992** Hobart 5.6 13.0 7.6 1.6 3.1 **62476** Launceston 7.4 13.5 8.8 **19077** Williamtown 18.3 29.1 3.2 1.0 7.0 **55366** PerthAirport 9.8 21.9 0.0 3.6 9.8 **42784** GoldCoast 23.4 30.4 0.0 
  • Or in the PHPMarkdown Extra / piped syntax to be used with knitr :

     > pandoc.table(weatherAUS[obs, vars], style = 'rmarkdown') | &nbsp; | Location | MinTemp | MaxTemp | Rainfall | Evaporation | Sunshine | |:-----------:|:------------:|:---------:|:---------:|:----------:|:-------------:|:----------:| | **60992** | Hobart | 5.6 | 13.0 | 7.6 | 1.6 | 3.1 | | **62476** | Launceston | 7.4 | 13.5 | 8.8 | | | | **19077** | Williamtown | 18.3 | 29.1 | 3.2 | 1.0 | 7.0 | | **55366** | PerthAirport | 9.8 | 21.9 | 0.0 | 3.6 | 9.8 | | **42784** | GoldCoast | 23.4 | 30.4 | 0.0 | | | 
+16
source

All Articles