EasyStat EasyStat logo

CRAN status R-CMD-check License: MIT pkgdown

Automated Statistical Analysis, Visualization, and Multi-Format Narrative Reporting in R

Authors: Mr. Mahesh Divakaran & Dr. Gunjan Singh (Amity School of Applied Sciences, Amity University Lucknow) - Prof. Dr. Jayadevan Shreedharan (Gulf Medical University)

Overview

EasyStat bridges the gap between statistical output and actionable insight. A single function call delivers the statistical result, a plain-language narrative interpretation, and publication-ready tables, rendered in the RStudio Viewer, the R console, or Microsoft Word.

User-facing p-values are reported as percentages rounded to 4 decimal places, while raw model objects still retain the original numeric p-values for advanced use.

Installation

# From CRAN (when available)
install.packages("EasyStat")

# Development version from GitHub
# install.packages("devtools")
devtools::install_github("itsmdivakaran/Easystat")

# From local source
install.packages("path/to/EasyStat", repos = NULL, type = "source")

Quick Start

library(EasyStat)

# Linear regression with narrative
easy_regression(mpg ~ wt + hp, data = mtcars)

# Logistic regression with odds ratios
easy_logistic_regression(am ~ mpg + wt, data = mtcars)

# t-test
easy_ttest(mpg ~ am, data = mtcars)

# One-way ANOVA
easy_anova(Sepal.Length ~ Species, data = iris)

# Descriptive statistics for multiple variables
easy_describe(mtcars, vars = c("mpg", "hp", "wt"))

# Correlation heatmap
easy_correlation_heatmap(mtcars, vars = c("mpg", "hp", "wt", "qsec", "drat"))

# Export any result to Word
result <- easy_logistic_regression(am ~ mpg + wt, data = mtcars)
export_to_word(result, file = "report.docx", title = "Transmission Model",
               author = "Mahesh Divakaran, Gunjan Singh, Jayadevan Shreedharan")

Four-Step Pipeline

Step Module Role
1 Core Statistical Engine Wraps lm(), glm(), t.test(), aov(), chisq.test(), var.test(), cor.test()
2 Metric Extractor Uses model summaries and broom helpers to extract p-values, effect sizes, CIs, and fit metrics
3 Narrative Generator Module Applies conditional logic to produce plain-language explanations
4 Unified Result Object Returns easystat_result S3 objects with tables, narrative, and optional plots

Function Reference

Descriptive Statistics

Function Description
easy_describe() 21-statistic summary for one or more numeric variables
easy_group_summary() Stratified descriptives by a grouping factor

Regression Models

Function Model Key Output
easy_regression() Linear regression R-squared, ANOVA table, diagnostics, influential observations
easy_logistic_regression() Binary logistic regression Odds ratios, OR CIs, classification table, McFadden pseudo-R2

Inferential Tests

Function Test Effect Size
easy_ttest() Independent / one-sample t-test Cohen’s d
easy_anova() One-way ANOVA with post-hoc context eta-squared
easy_chisq() Chi-square independence and GOF Cramér’s V
easy_ztest() One- and two-sample z-test Cohen’s d
easy_ftest() F-test for equality of variances Variance ratio + CI
easy_correlation() Pearson / Spearman / Kendall correlation and matrix r, r-squared
easy_wilcox() Wilcoxon rank-sum / signed-rank test Median comparison + CI
easy_kruskal() Kruskal-Wallis test Rank-based eta-squared

Visualizations

Function Plot type
easy_histogram() Histogram with normal-curve overlay
easy_boxplot() Grouped box-and-whisker plot
easy_scatter() Scatter plot with regression line and R-squared
easy_barplot() Count or mean (+/- SE) bar chart
easy_qqplot() Q-Q normality plot
easy_density() Kernel density curve, optionally grouped
easy_correlation_heatmap() Annotated pairwise correlation heatmap
easy_regression_diagnostics() Fitted-vs-residuals diagnostic plot
easy_odds_ratio_plot() Logistic regression odds-ratio plot
easy_autoplot() Smart dispatcher that picks the right plot for a result

Theme & Export

Function Description
theme_easystat() Consistent ggplot2 theme for all plots
export_to_word() Formatted .docx report with flextable and officer

Output Modes

Mode Trigger
RStudio HTML Viewer Auto-detected in interactive sessions
Console Scripts, terminals, non-interactive sessions
Word .docx export_to_word()

Running the Smoke Test

source(system.file("smoke_test.R", package = "EasyStat"))

Citation

If you use EasyStat in your research, please cite:

Divakaran M., Singh G., & Shreedharan J. (2026). EasyStat: Automated Statistical Analysis, Visualization and Multi-Format Narrative Reporting in R (Version 2.0.0). Amity University Lucknow & Gulf Medical University. https://itsmdivakaran.github.io/Easystat/index.html

License

MIT (c) 2026 EasyStat Authors. See LICENSE for details.