easytable 2.1.1

This is the first CRAN submission version of easytable.

Compared with the earlier GitHub and Zenodo 2.1.0 release, this version includes minor bug fixes, documentation updates, and CRAN-requested formatting changes.


easytable 2.1.0

Minor Updates

Breaking Changes

New Features

Formatting and Consistency

Documentation

Testing Infrastructure

API and Validation UX


easytable 2.0.1

New Features

Bug Fixes

Backward Compatibility

Migration from 2.0.0

Most users can adopt the new interface immediately:

# Old way (still works)
models <- list(Model1 = m1, Model2 = m2)
easy_table(models)

# New way (recommended)
easytable(m1, m2)

# With custom names
easytable(m1, m2, model.names = c("Model1", "Model2"))

easytable 2.0.0

Major Changes

This is a complete rewrite of easytable with breaking changes. Version 2.0.0 modernizes the package architecture and dramatically expands functionality.

New Features

Breaking Changes

⚠️ IMPORTANT: The following changes may affect existing code:

  1. Removed runtime installation (CRITICAL SECURITY FIX)
  2. Function parameter changes
  3. Improved join operations

Bug Fixes

Documentation

Testing

Performance

Migration Guide: 0.1.0 → 2.0.0

If You’re Using Basic Features

Good news: Most basic usage should work without changes!

# This still works exactly the same
easy_table(model_list)

If You Had Issues with Missing Packages

Old behavior (0.1.0):

# Package would auto-install dependencies (security risk!)
easy_table(models)
# Installing package into '~/R/library'...

New behavior (2.0.0):

# Get clear error with installation instructions
easy_table(models)
# Error: Package 'flextable' is required for Word output.
#   Install it with: install.packages('flextable')

# You install once:
install.packages("flextable")

# Then use normally:
easy_table(models)

If You Want Markdown or LaTeX Output

New in 2.0.0:

# Markdown for Quarto/RMarkdown
easy_table(models, output = "markdown")

# LaTeX for PDF
easy_table(models, output = "latex")

If You’re Using Advanced Features

All advanced features work the same way:

# Robust SE - still works
easy_table(models, robust.se = TRUE)

# Marginal effects - still works
easy_table(models, margins = TRUE)

# Control variables - still works (now with fixed regex bug!)
easy_table(models, control.var = c("species", "island"))

# Highlighting - still works
easy_table(models, highlight = TRUE)

# CSV export - still works
easy_table(models, csv = "results")

Package Dependencies

Install what you need:

# For basic usage (Word output)
install.packages(c("broom", "dplyr", "flextable"))

# For robust standard errors
install.packages(c("lmtest", "sandwich"))

# For marginal effects
install.packages("margins")

# For Markdown/LaTeX output
install.packages("knitr")
install.packages("kableExtra")  # optional, for enhanced formatting

What Stays the Same

✅ Function name: easy_table() ✅ Default behavior: Word output via flextable ✅ Parameter names: robust.se, margins, control.var, highlight, csv ✅ Model support: lm, glm ✅ Significance stars: *** p < .01, ** p < .05, * p < .1 ✅ Model fit statistics: N, R sq., Adj. R sq., AIC (glm only)

What’s Different

🔄 Must install dependencies manually (no more auto-install) 🆕 New output formats: markdown and latex 🐛 Control variable matching now works correctly 📚 Much better documentation and examples ✅ Comprehensive test coverage 🏗️ Cleaner, more maintainable code architecture

Detailed Changes by Component

Parse Models (R/parse_models.R)

Transform Table (R/transform_table.R)

Format Renderers

Validators (R/validators.R)

Main Function (R/easytab.R)

Future Roadmap

The modular architecture in 2.0.0 makes it easy to add:

Credits

Feedback

Found a bug? Have a feature request? Please open an issue on GitHub: https://github.com/alfredo-hs/easytable/issues


easytable 0.1.0

Initial release (2024)

Note: Version 0.1.0 had critical issues: - Runtime package installation (security risk) - Monolithic code structure (hard to maintain) - Control variable regex bug - Limited to Word output only - No tests or comprehensive documentation

All issues resolved in 2.0.0.