How to Create Publication-Ready Tables in R
How to Create Publication-Ready Tables in R, Data analysis is only half the battle. Presenting your results in a clean, professional, and publication-ready format is equally important.
Whether you’re preparing a research paper, academic report, business analysis, or statistical study, well-formatted tables can significantly improve readability and credibility.
One of the most popular R packages for creating high-quality statistical tables is stargazer. This package allows analysts, researchers, and students to quickly generate attractive summary statistics tables and regression result tables that are suitable for journals, reports, websites, and presentations.
In this guide, we’ll explore how to use the Stargazer package in R, create summary statistics tables, generate regression output tables, and export results for publication.
What is the Stargazer Package?
The stargazer package is an R library designed to transform statistical output into professional-looking tables. It supports a variety of model types and can export results to multiple formats including:
- Text
- HTML
- LaTeX
- Microsoft Word-compatible formats
The package is especially popular among:
- Data Scientists
- Statisticians
- Researchers
- Economists
- Academic Writers
- Business Analysts
Its primary goal is to make statistical reporting simple, consistent, and visually appealing.
How to Create Publication-Ready Tables in R, Why Use Stargazer?
Without Stargazer, analysts often spend hours manually formatting tables for publications. Stargazer automates this process and offers several benefits:
Key Advantages
✔ Professional-looking tables
✔ Publication-ready outputs
✔ Easy export to HTML and LaTeX
✔ Supports multiple regression models
✔ Customizable table formatting
✔ Saves time and reduces formatting errors
For anyone regularly performing statistical analysis in R, Stargazer can become an essential productivity tool.
Installing and Loading Stargazer
Before using the package, install it from CRAN and load it into your R session.
# Install Stargazer
install.packages("stargazer")
# Load package
library(stargazer)
Once loaded, you’re ready to generate professional statistical tables.
Understanding the Stargazer Function
The basic syntax is straightforward:
stargazer(
df,
type = "text",
title = "My Title",
out = "output.txt"
)
Parameters
| Parameter | Description |
|---|---|
| df | Data frame or model object |
| type | Output format (text, html, latex) |
| title | Table title |
| out | Output file name |
This simple function can create two of the most commonly used statistical tables:
- Summary Statistics Tables
- Regression Output Tables
Let’s examine both.
Example 1: Creating Summary Statistics Tables
Suppose we want descriptive statistics for the built-in R dataset mtcars.
stargazer(
mtcars,
type = "text",
title = "Summary Statistics",
out = "mtcars_data.txt"
)
The generated output includes:
- Number of observations
- Mean
- Standard deviation
- Minimum value
- 25th percentile
- 75th percentile
- Maximum value
Example Output
Summary Statistics
=============================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
-------------------------------------------------------------
mpg 32 20.091 6.027 10 15.4 22.8 34
cyl 32 6.188 1.786 4 4 8 8
disp 32 230.722 123.939 71 120.8 326 472
hp 32 146.688 68.563 52 96.5 180 335
-------------------------------------------------------------
Why Summary Statistics Matter
Descriptive statistics provide a quick overview of the dataset before any advanced analysis begins.
They help answer questions such as:
- What is the average value?
- How much variation exists?
- Are there potential outliers?
- What is the overall data distribution?
Researchers often include these tables at the beginning of academic papers and reports.
Example 2: Creating Regression Tables
Regression analysis is one of the most common statistical techniques used in data science and research.
Let’s fit a multiple linear regression model using:
- Response Variable: mpg
- Predictors: disp and hp
fit <- lm(mpg ~ disp + hp, data = mtcars)
Now create a professional regression table:
stargazer(
fit,
type = "text",
title = "Regression Summary",
out = "mtcars_regression.txt"
)
Example Output
Regression Summary
===============================================
Dependent variable:
---------------------------
mpg
-----------------------------------------------
disp -0.030***
(0.007)
hp -0.025*
(0.013)
Constant 30.736***
(1.332)
-----------------------------------------------
Observations 32
R2 0.748
Adjusted R2 0.731
Residual Std. Error 3.127 (df = 29)
F Statistic 43.095*** (df = 2; 29)
===============================================
Interpreting the Regression Output
Let’s understand what these results mean.
Coefficients
The coefficient for disp is negative:
-0.030
This suggests that as engine displacement increases, fuel efficiency (mpg) decreases.
The coefficient for hp is also negative:
-0.025
Higher horsepower tends to reduce fuel economy.
Statistical Significance
Stargazer automatically displays significance stars:
| Symbol | Meaning |
|---|---|
| * | p < 0.10 |
| ** | p < 0.05 |
| *** | p < 0.01 |
More stars indicate stronger statistical evidence.
Model Fit
The model reports:
R² = 0.748
This means approximately 74.8% of the variation in mpg is explained by displacement and horsepower.
Exporting Tables for Reports and Publications
One of Stargazer’s biggest strengths is exporting tables directly into publication-friendly formats.
Export to Text
stargazer(mtcars,
type = "text",
out = "summary.txt")
Export to HTML
stargazer(mtcars,
type = "html",
out = "summary.html")
Export to LaTeX
stargazer(mtcars,
type = "latex",
out = "summary.tex")
These files can be directly integrated into:
- Research manuscripts
- Journal submissions
- Company reports
- Thesis documents
- Websites and blogs
Customizing Stargazer Tables
Stargazer offers many customization options.
Custom Column Labels
stargazer(fit,
column.labels = "Fuel Economy Model")
Change Decimal Places
stargazer(fit,
digits = 2)
Remove Statistics
stargazer(fit,
omit.stat = c("f", "ser"))
Add Notes
stargazer(fit,
notes = "Results based on mtcars dataset.")
These options help tailor tables to publication requirements.
Best Practices for Using Stargazer
To create impactful statistical reports:
Keep Tables Simple
Avoid unnecessary statistics that distract readers.
Use Meaningful Titles
Descriptive titles improve interpretation.
Include Notes
Explain model assumptions and variables.
Maintain Consistency
Use the same formatting style throughout reports.
Export to Appropriate Formats
- HTML for websites
- LaTeX for journals
- Text for quick reporting
Final Thoughts
The Stargazer package remains one of the most valuable tools for statistical reporting in R. Instead of spending hours manually formatting tables, researchers and analysts can generate elegant, publication-quality outputs with just a few lines of code.
Whether you’re creating descriptive statistics, presenting regression models, or preparing an academic manuscript, Stargazer provides a simple yet powerful solution for professional reporting.
If you regularly work with R, adding Stargazer to your workflow can significantly improve both productivity and presentation quality, making your statistical findings easier to communicate and more impactful for your audience.
Conclusion
Professional presentation of statistical results is critical in data science, research, and business analytics. The Stargazer package simplifies this process by producing clean, publication-ready tables that showcase summary statistics and regression results with minimal effort.
By mastering Stargazer, you can transform raw statistical output into polished reports that are ready for journals, conferences, stakeholders, and clients.

