8

I want to have R display the data it gives me from the summary() function in a table so I can easily share this. I am currently just doing summary() in the console and then taking a screenshot, but I would rather have this generated as a nice table just like all of my graphs are. Any ideas?

chl
  • 50,972
  • 18
  • 205
  • 364
Ethan Bartolic
  • 81
  • 1
  • 1
  • 2
  • 1
    I've updated the title of your question to reflect its content. Otherwise, it is a duplicated of [Graphical data overview (summary) function in R](http://stats.stackexchange.com/q/4089/930). – chl Aug 08 '12 at 01:12
  • You may want to read this awesome post on tables: [Some notes on making effective tables](http://stats.blogoverflow.com/2012/02/some-notes-on-making-effective-tables/) by CV contributor @AndyW. Much of it is general information about tables (albeit *awesome* general information), but there is some specific to making tables in R w/ $\LaTeX$ as well. – gung - Reinstate Monica Aug 08 '12 at 03:52

1 Answers1

4

If you have the R package Hmisc and a working latex installation you can do:

x=rnorm(1000)
y=rnorm(1000)
lm1=lm(y~x)
slm1=summary(lm1)
latex(slm1)

It works the same with datasets,

latex(summary(cars))
Seth
  • 577
  • 4
  • 11
  • 1
    An even better solution is to directly use `summary.formula`, e.g. `print(summary(~ x + y), prmsd=TRUE, digits=1)`. The `latex` command assumes the OP has a working $\TeX$ installation. It is often convenient to just output plain text, like this: `capture.output(print(summary(~ x + y), prmsd=TRUE, digits=1), file="out.txt")`. – chl Aug 08 '12 at 01:01
  • 2
    Another approach to outputting plain text that works well is to use [?sink](http://stat.ethz.ch/R-manual/R-devel/library/base/html/sink.html). Eg, `sink(file=, type="output"); ; sink()`, then a text file will exist in the working directory with whatever would have been the output of the functions used. – gung - Reinstate Monica Aug 08 '12 at 03:57