User-Friendly Tables with Color Helpers for Data Exploration
Overview
Make it easy to deal with multiple cross-tables in data exploration, by creating them, manipulating them, and adding color helpers to highlight deviations (differences from totals, comparisons between lines or columns, contributions to variance, odds ratios, etc.) and significance (confidence intervals, stars, etc.). Create the same kind of tables for regression models, with a framework to compare model effects with their crude/observed counterpart systematically. All functions render data frames which can be easily manipulated. All tables can be exported with formats and colors to 'Excel', html and markdown.
New features
- **The footer under a table is a template you can edit.** Everything printed there — the weight line, the colour legend, the significance-stars key — is a
<placeholder>in the table'ssubtext, and everything you write is a line: the order of the lines is the order of the footer.get_subtext()shows it,set_subtext()replaces it, and dropping<legend>drops the legend, in the console too.set_legend_words()re-states what that legend calls a measure, for a table grading the same ladder on another quantity. See?tabxplor-footer. - **A note, or a second table, under a table.**
set_footer_tabs()takes atabxplor_taband renders it as a table, or any other data.frame and renders it as a grey note;tab_note()sets that note's headers, alignment and footnote. - **Data bars.**
set_bars()draws a bar chart inside the table — in html and in Excel — scaled to the column's own largest data cell, or to a ceiling you state.
Show all changes in 2.0.1Hide the rest of the changes in 2.0.1
- **
options(tabxplor.print = "md").** A bare table prints as markdown instead of in the console or the Viewer, which is what a Quarto or R Markdown notebook knitted without pandoc needs. - **A wide html table scrolls instead of widening the page**, in a document, on a pkgdown site, in the Viewer and in jamovi alike. Its title stays outside the box, and printing lifts the clip.
- **
tab_html(cells = )— write back whatget_data = TRUEreads.** Hand back the same data.frame with some cells edited and each edit is written verbatim into its<td>, keeping the cell's colours, alignment and tooltip. This is the supported way to splice an input box, a link or a badge into a tabxplor table. - **The jamovi module is now built for macOS (Apple silicon and Intel), Windows and Linux**, on both jamovi lines, and published as downloadable files. It is installed by sideloading, not from jamovi's library: the procedure and the links are in the README and on the package website.
Minor improvements and fixes
- **Two bugs with weighted data, both silent.** A variable whose name is not syntactic (
Age group,Household weight) broke every formula built from names: withdesign_effect = TRUEthe design-based tests returnedNAwith no message, andtab_reg(wt = )stopped on a parse error. - **A
subtextwritten by a user is escaped in html.** It is now shown, never executed — which matters for a table shared inside jamovi, where an html result can run scripts. - **Significance stars are now
.05/.01/.001**, the discipline's usual scale, instead of.10/.05/.01. At the default confidence level a greyed cell can therefore no longer carry a star. - **
display = "odds"** prints the odds behind a percentage — the middle rung between a percentage and an odds ratio. - **Options set in
.Rprofileare no longer overwritten when the package loads.**tabxplor.printandtabxplor.themeset beforelibrary(tabxplor)now hold. - A regression's multiplicative count measure is named
RoM(ratio of means) rather thanIRR, so a column is headedModel_RoM;measure = "IRR"is still accepted. - The weight footer no longer mentions intervals and tests that are not in the table: a weighted table showing none of them prints only "Weighted by
<wt>." - **A
col_varspan header is wrapped and compacted like every other header.** It was the one header no rule owned, so a long variable name widened the whole block. One visible consequence: its spaces are now narrow no-break spaces in html, as every other header's already were — code that matches a span's text literally has to allow for that. - A host table and its subordinate share one footer, instead of printing the colour legend twice in html and not at all in the console.
- French translations: every multiplicative comparison that is not an odds ratio now reads *ratio*, and six mistranslated strings that were printing in English are fixed.
From NEWS.md in the release
Install
Health
- OK13 OK2026-08-04
- NOTE12 OK, 1 NOTE2026-08-01
- OK13 OK2026-06-09
- ERROR12 OK, 1 ERROR2026-06-08
- OK14 OK2026-03-10
Documentation
The repository also keeps web-only articles.
- Help pages
- 124 (69 internal)includes a package overview page
- Examples that run
- 56%27 run in a plain check (1 of them under a condition) · 21 only when donttest examples are enabled (R CMD check --as-cran)
- Exported functions with examples
- 73%
- Documented parameters
- 95%
- Return-value docs
- 100%
- Help pages citing references
- 1%
Downloads
Repository
- PRs merged (all time)
- 83%
- Median days to close, 50 most recently updated closed issues
- not measured
- Median days to close, 50 most recently updated closed PRs
- 0
Stars over time
Forks over time
Releases over time
PRs over time
Commits over time
11 development-tooling and community-health practices detected across 6 families in the upstream repository
Checks run against github.com/bricenocenti/tabxplor on 2026-10-11.
The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel
GitHub Pages site last deployed 2026-09-17 · The repository has a site deploy workflow
pkgdown site last built 2026-09-17, before release 2.0.1 (2026-09-18)
Show all practicesHide 2 practices
This repository shows signs of AI coding tools.
- Claude Codefirst seen 2026-04-10Seen in the repository: .claude, .claude/skills, CLAUDE.mdNamed in .Rbuildignore: .claude, CLAUDE.mdNamed in .gitignore: .claudePull request it wrote: opened by a project memberCommits: at least 36 crediting it in the message
- Claude Opus 4.831 commits · Jul 2026
- Claude Opus 55 commits · Aug 2026
Dependencies
Installing tabxplor adds 29 packages (17 with compiled code, 30 MB of source tarballs). Heaviest: stringi 11 MB, data.table 5.7 MB, survey 2.3 MB.
Code & Tests
Datasets
People & History
Pick two releases to compare their code metrics.
- 2.0.1Latest2026-09-18 · current release · diff ↗ ·
added 11 exports
get_bars, get_footer_tabs, get_legend_words, get_subtext, set_bars, set_footer_tabs, set_legend_words, set_subtext, tab_footer_text, tab_note, tab_pipe - 2.0.02026-08-29 · diff ↗ ·
removed 3 exports
%>%, get_ci_type, set_ci_typeadded 42 exports
fmt_attr<-, conf_level_to_z, fmt_attr, forest_plot, get_caption, get_ci_method, get_col_group, get_color_bg, get_color_signif, get_model_family, get_pct_type, get_pvalue, get_row_kind, get_scale, get_test, gss_cat_data_formatting, is_lvl, jmvtabreg, new_lvl, reg_check_plots, reg_formulas, reg_measures, set_caption, set_color_palette, set_color_signif, set_model_family, set_pct_type, set_pvalue, set_ref_type, set_row_kind and 12 more - RR 4.6.0 released · 2026-04-24
- 1.3.12025-09-27 · diff ↗
- RR 4.5.0 released · 2025-04-11
- 1.3.0
- 1.2.1
- 1.2.02024-08-30 · diff ↗ ·
removed 1 export
get_diff_typeadded 6 exports
get_ref_type, jmvtab, set_display, tab_get_wrapped_dimensions, tab_plot, tab_wrap_text - RR 4.4.0 released · 2024-04-24
- 1.1.32024-03-08 · diff ↗
- 1.1.22024-02-08 · diff ↗
- unarchivedReturned to CRAN2024-01-22
- 1.1.12024-01-22 · diff ↗ ·
added 3 exports
complete_partial_totals, fct_recode_helper, tab_xl_confidential - RR 4.3.0 released · 2023-04-21
- archivedRemoved from CRAN2022-09-06check problems were not corrected in time
- 1.1.02022-06-16 · diff ↗ ·
removed 1 export
tab_coreadded 15 exports
as_refcol, as_refrow, get_ci_type, get_col_var, get_color, get_comp_all, get_diff_type, is_refcol, is_refrow, set_ci_type, set_col_var, set_color, set_comp_all, set_diff_type, tab_num
Package metadata
- First published
- 2021-09-14
- Total releases
- 13 / 5 yrs
- License
- GPL (>= 3) OSI
- Minimum R
- ≥ 4.1.0
- Bundled data
- 45 KB / 4 files
- Download size
- 3.2 MB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("tabxplor")This package has no citation file, so citation() returns this entry built from DESCRIPTION.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-18, which the citation names so these numbers can be found later. More on citing and the projects behind them.