library(xtable)
library(rattle)
set.seed(42)
obs <- sample(1:nrow(weatherAUS), 5)
vars <- 2:7
xtable(weatherAUS[obs, vars])
I get the following o
What you get returned from xtable
is pretty formatted, but as it is being in LaTeX syntax, it would be worth to run through a LaTeX compiler like pdflatex
. That would return a pdf document like this:
If you want a formatted table inside the R console, so a rather human-readable version of the standard print.data.frame
, you might give a try to the ascii
or my pander
package. Examples:
A basic 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 | |
|===================================================================================
Calling ascii
to return the table in e.g. 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 the table in different markdown formats:
> library(pander)
> panderOptions('table.split.table', Inf)
> pander(weatherAUS[obs, vars])
--------------------------------------------------------------------------------
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')
+-------------+--------------+-----------+-----------+------------+---------------+------------+
| | 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 | | |
+-------------+--------------+-----------+-----------+------------+---------------+------------+
A more simple
r format:
> pandoc.table(weatherAUS[obs, vars], style = 'simple')
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 PHPMarkdown Extra/piped syntax to be used with knitr
:
> pandoc.table(weatherAUS[obs, vars], style = 'rmarkdown')
| | 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 | | |