How to print (to paper) a nicely-formatted data frame
Here is a quick and easy possibility using grid.table
from the gridExtra package:
library(gridExtra)pdf("data_output.pdf", height=11, width=8.5)grid.table(mtcars)dev.off()
If your data doesn't fit on the page, you can reduce the text size grid.table(mtcars, gp=gpar(fontsize=8))
. This may not be very flexible, nor easy to generalize or automate.
Surprised nobody has mentioned the stargazer
package for nice printing of data.
You can output a nice-looking text file:
stargazer(mtcars, type = 'text', out = 'out.txt')============================================Statistic N Mean St. Dev. Min Max --------------------------------------------mpg 32 20.091 6.027 10.400 33.900 cyl 32 6.188 1.786 4 8 disp 32 230.722 123.939 71.100 472.000hp 32 146.688 68.563 52 335 drat 32 3.597 0.535 2.760 4.930 wt 32 3.217 0.978 1.513 5.424 qsec 32 17.849 1.787 14.500 22.900 vs 32 0.438 0.504 0 1 am 32 0.406 0.499 0 1 gear 32 3.688 0.738 3 5 carb 32 2.812 1.615 1 8 --------------------------------------------
Or even HTML:
stargazer(mtcars, type = 'html', out = 'out.html')
<table style="text-align:center"><tr><td colspan="6" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">Statistic</td><td>N</td><td>Mean</td><td>St. Dev.</td><td>Min</td><td>Max</td></tr><tr><td colspan="6" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">mpg</td><td>32</td><td>20.091</td><td>6.027</td><td>10.400</td><td>33.900</td></tr><tr><td style="text-align:left">cyl</td><td>32</td><td>6.188</td><td>1.786</td><td>4</td><td>8</td></tr><tr><td style="text-align:left">disp</td><td>32</td><td>230.722</td><td>123.939</td><td>71.100</td><td>472.000</td></tr><tr><td style="text-align:left">hp</td><td>32</td><td>146.688</td><td>68.563</td><td>52</td><td>335</td></tr><tr><td style="text-align:left">drat</td><td>32</td><td>3.597</td><td>0.535</td><td>2.760</td><td>4.930</td></tr><tr><td style="text-align:left">wt</td><td>32</td><td>3.217</td><td>0.978</td><td>1.513</td><td>5.424</td></tr><tr><td style="text-align:left">qsec</td><td>32</td><td>17.849</td><td>1.787</td><td>14.500</td><td>22.900</td></tr><tr><td style="text-align:left">vs</td><td>32</td><td>0.438</td><td>0.504</td><td>0</td><td>1</td></tr><tr><td style="text-align:left">am</td><td>32</td><td>0.406</td><td>0.499</td><td>0</td><td>1</td></tr><tr><td style="text-align:left">gear</td><td>32</td><td>3.688</td><td>0.738</td><td>3</td><td>5</td></tr><tr><td style="text-align:left">carb</td><td>32</td><td>2.812</td><td>1.615</td><td>1</td><td>8</td></tr><tr><td colspan="6" style="border-bottom: 1px solid black"></td></tr></table>