rtables
‹0.6.17
- 0.6.171 Oct 2026, current
- 0.6.1622 Apr 2026
- 0.6.1514 Dec 2025
- 0.6.1418 Nov 2025
- 0.6.1319 Jun 2025
- 0.6.1211 Apr 2025
- 0.6.1110 Jan 2025
- 0.6.1020 Sep 2024
- 0.6.927 Jun 2024
- 0.6.820 Jun 2024
- 0.6.715 Apr 2024
- 0.6.68 Dec 2023
- 0.6.330 Aug 2023
- 0.6.125 May 2023
- 0.6.03 Mar 2023
- 0.5.121 May 2022
- 0.5.01 Apr 2022
- 0.4.06 Oct 2021
- 0.3.813 Jul 2021
- 0.3.622 Jan 2021
Reporting Tables
- CRAN checks, method
Method
Checks and health
CRAN runs every current package through
R CMD checkon a set of machines and publishes a result for each one. The health shown on a package page comes from these results alone.- Problems
- Notes alone never count against a package, but a warning, an error or a failure on any platform is a problem. Open CRAN deadlines are a fact of their own, shown as a clock after the mark, so the mark always says what the checks found.
- Checks only
- Health reflects CRAN's check results and nothing else. Even a package with no tests, no coverage or no recent release can have every platform OK.
- Once a day
- Results are collected once a day from files CRAN publishes. Each platform is one machine set-up, named by its R version, operating system, architecture and compiler, such as r-devel-linux-x86_64-fedora-clang.
- Platforms counted
- The 13 in 3 of 13 is the number of platform rows CRAN published for that package on the day of collection. The set of machines changes over time, so the number is not fixed, and a package missing from a platform counts as neither passing nor failing there.
- All OK13 platforms
- CRAN 30-day downloads, method
- 8,328+22.5% up on the 30 days before, the better direction
- Dependent packages, method
Method
Reverse dependencies
Dependent packages are other packages that list this one under
Depends,ImportsorLinkingToin theirDESCRIPTIONfile. Those fields list the packages a package needs to install, so dependents break if this one is archived or broken.- As declared
- The counts follow the declarations as written, not whether a package uses the other one when it runs.
- Suggests apart
- Packages that list this one only under
Suggestsinstall and run without it, and use it for tests, examples or an optional feature. They are counted as Suggested by, never among the dependents, and a package that also lists it under one of the three fields is a dependent and is not counted again. - Zero
- Zero dependents means no current CRAN package declares a need for this one, though some may suggest it. On 28 Oct 2026, 19,572 of the 25,583 current CRAN packages had no dependent package.
- 134 more suggest it
- Test coverage, method
Method
Test coverage
Test coverage is measured by downloading each CRAN package's current source file, installing its dependencies, building it and running its tests under covr.
- Almost half of CRAN has no tests to run
- Only CRAN packages are measured. Many have no percentage, most often because the package has no tests, and that blank is a recorded outcome, not missing data.
- NOT_CRAN
- Tests run with NOT_CRAN=true, so tests that skip themselves on CRAN run here, and the figure can differ from what CRAN's own checks see.
- Current version only
- Only the current version is measured, and a new version on CRAN is measured again. Older rows are kept but never filled in later. This is one package's run.
- Never 0%
- On a package page three states stay apart: measured, no tests, and not measured. Neither of the last two is ever shown as 0%.
- 90%of lines run by tests
- Advisories, method
Method
Security advisories
Advisories come from the R Consortium advisory database, a community record of security problems in R packages, as OSV publishes it.
- The copy
- The record is read once a day. The data is published under the Apache License 2.0 and is credited on the advisories list.
- Box under the name
- Under the package's name, a box names any advisory that affects the current release, with its fix or that there is none.
- Ranges
- Advisories state ranges, such as from 0.9.12 up to but not including 1.8.8. Each range is checked against every version CRAN has published, using the version rules R itself uses, so a release that came out after the advisory was written is still caught by its range.
- Not the package
- The rating is for the library flaw itself, not for how exposed the R package is, and it is never added up into a figure for the package.
- None known
About
Method, About Method Licence figures come from the Licences
License field of each package's DESCRIPTION file, read the way R itself reads it. No licence file is opened.tools::analyze_license() and R's own licence database, as CRAN's checks read it.| is read, so one string can offer two families.
Reporting tables often have structure that goes beyond simple rectangular data. The 'rtables' package provides a framework for declaring complex multi-level tabulations and then applying them to data.
Full description
Reporting tables often have structure that goes beyond simple rectangular data. The 'rtables' package provides a framework for declaring complex multi-level tabulations and then applying them to data. This framework models both tabulation and the resulting tables as hierarchical, tree-like objects which support sibling sub-tables, arbitrary splitting or grouping of data in row and column dimensions, cells containing multiple values, and the concept of contextual summary computations. A convenient pipe-able interface is provided for declaring table layouts and the corresponding computations, and then applying them to data.
- Maintainer
- Joe Zhu
- Latest release
- 1 Oct 2026
- First release
- 22 Jan 2021
More details
- Releases
- 20
- Needs compilation
- No
- Needs R
- >= 4.1
- Config/Needs/verdepcheck
- pharmaverse/formatters, mllg/checkmate, rstudio/htmltools, gagolews/stringi, tidymodels/broom, cran/car, tidyverse/dplyr, davidgohel/flextable, yihui/knitr, r-lib/lifecycle, davidgohel/officer, Merck/r2rtf, rstudio/rmarkdown, therneau/survival, r-lib/testthat, tidyverse/tibble, tidyverse/tidyr, r-lib/withr, r-lib/xml2
- Config/roxygen2/version
- 8.1.0
- Date
- 2026-09-29
- Language
- en-US
Collections (1) Method, CollectionsMethod
Subjects and collections
Subjects are the site's own grouping of CRAN packages, found by clustering. Collections are sets of packages that communities declare, such as the tidyverse.
- Subjects
- Subjects are found by clustering the words of current CRAN packages and the packages they use. No one edits them by hand.
- Collections
- Collections are sets that communities declare, through a package that installs the set or an organization on GitHub. The site finds them by rules.
- Who made each
- Subjects are marked Site and collections Community. Subjects, collections and task views are never mixed in one list.
- The day of the data
- Subjects and collections were last worked out on 22 Oct 2026.
- pharmaverse, in the pharmaverse organization on GitHub
Subjects (1) Method, Subjects
Cite
Package
Run in R for the authors' preferred citation:
citation("rtables")Zhu, J., F. Hoffmann-La Roche AG, Becker, G., Garolini, D., Mordig, M., Munoz Tord, D., Sabanés Bové, D., Waddell, A., Yogasekaram, A., & de la Rua, E. (2026). rtables: Reporting Tables (Version 0.6.17) [Computer software]. https://doi.org/10.32614/CRAN.package.rtables
About
This package has no citation file, so citation() returns this entry built from DESCRIPTION.
R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
Balamuta, J. J. (2026). R Observatory: Metrics for rtables version 0.6.17 [Data set]. HJJB, LLC. Data release v2026-10-28. https://doi.org/10.5281/zenodo.21843040
About
From data release v2026-10-28, which the citation names so these numbers can be found later.
Health
All 13 check platforms pass.
r-devel-linux-x86_64-debian-clangThe unreleased R on Linux, x86_64, debian-clang
OK
- Version checked
- 0.6.17
- Time taken
- 870 s
r-devel-linux-x86_64-debian-gccThe unreleased R on Linux, x86_64, debian-gcc
OK
- Version checked
- 0.6.17
- Time taken
- 571 s
r-devel-linux-x86_64-fedora-clangThe unreleased R on Linux, x86_64, fedora-clang
OK
- Version checked
- 0.6.17
- Time taken
- 642 s
r-devel-linux-x86_64-fedora-gccThe unreleased R on Linux, x86_64, fedora-gcc
OK
- Version checked
- 0.6.17
- Time taken
- 551 s
r-devel-windows-x86_64The unreleased R on Windows, x86_64
OK
- Version checked
- 0.6.17
- Time taken
- 788 s
r-oldrel-macos-arm64The previous release of R on macOS, arm64
OK
- Version checked
- 0.6.17
- Time taken
- 226 s
r-oldrel-macos-x86_64The previous release of R on macOS, x86_64
OK
- Version checked
- 0.6.17
- Time taken
- 977 s
r-oldrel-windows-x86_64The previous release of R on Windows, x86_64
OK
- Version checked
- 0.6.17
- Time taken
- 1,075 s
r-patched-linux-x86_64The patched release of R on Linux, x86_64
OK
- Version checked
- 0.6.17
- Time taken
- 829 s
r-release-linux-x86_64The current release of R on Linux, x86_64
OK
- Version checked
- 0.6.17
- Time taken
- 833 s
r-release-macos-arm64The current release of R on macOS, arm64
OK
- Version checked
- 0.6.17
- Time taken
- 183 s
r-release-macos-x86_64The current release of R on macOS, x86_64
OK
- Version checked
- 0.6.17
- Time taken
- 943 s
r-release-windows-x86_64The current release of R on Windows, x86_64
OK
- Version checked
- 0.6.17
- Time taken
- 761 s
- 13 OK
Over time
No change since 25 Oct 2026
As a list (11)
| Changed | Worst status | OK | Notes | Warnings | Errors |
|---|---|---|---|---|---|
| 25 Oct 2026 | OK | 13 | 0 | 0 | 0 |
| 24 Oct 2026 | Error | 12 | 0 | 0 | 1 |
| 4 Aug 2026 | OK | 13 | 0 | 0 | 0 |
| 1 Aug 2026 | Note | 12 | 1 | 0 | 0 |
| 9 Jun 2026 | OK | 13 | 0 | 0 | 0 |
| 7 Jun 2026 | Error | 12 | 0 | 0 | 1 |
| 13 May 2026 | OK | 13 | 0 | 0 | 0 |
| 9 May 2026 | Warning | 12 | 0 | 1 | 0 |
| 3 May 2026 | Error | 12 | 0 | 0 | 1 |
| 25 Apr 2026 | OK | 12 | 0 | 0 | 0 |
| 10 Mar 2026 | Note | 11 | 3 | 0 | 0 |
Since March 2026
Downloads
Method, Downloads Method Download figures count requests logged by each distribution channel. They are not counts of installs or of users, because each channel publishes its own totals and this site reads them.Downloads
- Total downloads in the last 30 days
- 8,850+25.9% up on the 30 days before, the better directionIt is the sum of 4 channels: CRAN, r2u, autoCRAN and conda-forge.
CRAN rank
1,237 of 26,530
CRAN
8,328 downloads in the last 30 days
- Rank
- 1,237 of 26,530
- Change
- +22.5% up on the 30 days before, the better direction
It is in the total. Take it out
r2u
123 downloads in the last 30 days
- Rank
- 2,127 of 30,526
- Change
- +80.9% up on the 30 days before, the better direction
It is in the total. Take it out
autoCRAN
3 downloads in the last 30 days
- Rank
- 17,776 of 29,212
- Change
- −85% down on the 30 days before, the worse direction
It is in the total. Take it out
conda-forge
396 downloads in the last 30 days
- Rank
- 1,698 of 3,828
- Change
- +177% up on the 30 days before, the better direction
It is in the total. Take it out
The total is 8,850 downloads in the last 30 days. It is the sum of 4 channels: CRAN, r2u, autoCRAN and conda-forge.
Over time
Dependencies
- Needs
- 7
- Dependent packages
- 13
- Suggested by
- 4
Needs (7)
- checkmate
- formatters
- htmltools
- lifecycle
- methods
- stats
- stringi
- Installing it adds
- 11 packages, 15.5 MB of source
- Of those, need compilation
- 9
Dependent packages (13)
| Package | Title | Downloads in 30 days |
|---|---|---|
| tern | Create Common TLGs Used in Clinical Trials | 2,618 |
| teal.widgets | 'shiny' Widgets for 'teal' Applications | 1,151 |
| teal.reporter | Reporting Tools for 'shiny' Modules | 1,017 |
| rtables.officer | Exporting Tools for 'rtables' | 953 |
| chevron | Standard TLGs for Clinical Trials Reporting | 865 |
| tern.mmrm | Tables and Graphs for Mixed Models for Repeated Measures (MMRM) | 814 |
| teal.modules.general | General Modules for 'teal' Applications | 810 |
| teal.modules.clinical | 'teal' Modules for Standard Clinical Outputs | 800 |
| tern.gee | Tables and Graphs for Generalized Estimating Equations (GEE) Model Fits | 754 |
| autoslider.core | Slide Automation for Tables, Listings and Figures | 585 |
| junco | Create Common Tables and Listings Used in Clinical Trials | 522 |
| autoslider.trade | Slide Automation for Trading Tables, Listings and Figures | 442 |
| uteals | Shared Utilities to Extend the 'teal' Modules | 366 |
Code
Method, Code Method Code metrics come from reading the released source of each package version. The package is never installed, loaded or run.Code metrics
README, vignettes, a NEWS file and the shares read from its help pages. Files kept only in the repository, such as a pkgdown configuration or CI files, are read by the repository scan instead.
- Functions
- 364
- Public exports
- 209
- Lines of R code
- 24,446
- Median complexity
- 2.5
Functions (364)
Size and composition
Lines by kind (59,618)
| Kind | Lines | Share |
|---|---|---|
| R code | 24,446 | 41% |
| Tests | 12,200 | 20% |
| Documentation | 11,496 | 19% |
| Guides | 11,476 | 19% |
Lines by language
| Language | Lines | Share |
|---|---|---|
| R | 36,646 | 62% |
| Rd | 11,496 | 19% |
| Vignettes | 11,476 | 19% |
Languages are counted from file extensions.
- Files
- 367
- R functions
- 364
- Object systems
- S3: 3 methods, S4: 48 classes, S4: 194 generics, S4: 613 methods
- Deprecated functions
- 2
Complexity
- Median
- 2.5
- Mean
- 4.17
- Highest
- 34
- Median lines per function
- 14
About complexity
Cyclomatic complexity counts the independent paths through a function: 1 is a straight line, higher is harder to test. R functions only.
Call graph figures
- R functions
- 364
- Calls
- 388
- Unconnected
- 71
- Groups
- 15
Growth (20 releases)
Release changes
Tests
The tests ran and coverage was measured.
- Lines run by tests
- 90.4%
- Expressions run by tests
- 89.8%
- Test cases
- 277
- Exports named in tests
- 72.7%
Coverage by file (29)
Coverage run
- Lines counted
- 9,363
- Lines the tests ran
- 8,468
- Tests passed
- Yes
- Measured with
- covr 3.6.5 on R 4.6.1
Test suite
- Has tests
- Yes
- Test frameworks
- testthat, tinytest
- Test cases
- 277
- Lines of tests
- 12,200
- Test lines per line of code
- 0.5
Documentation
- Exports documented
- 100%
- Arguments documented
- 98.3%
- Return value documented
- 89.9%
- Help pages with examples
- 68%
- Examples run in checks
- 100%
Guides (38)
- Introduction to {rtables
- A Guided Tour of rtables - Advanced
- A Guided Tour of rtables - Intermediate
- Advanced rtables - Accessing Values Within a Table
- Advanced rtables - Calling Existing afuns Within Custom afuns
- Advanced rtables - Custom Analysis and Group Summary Functions
- Advanced rtables - Custom Split Functions
- Advanced rtables - Some Complex Split Function Worked Examples
- Advanced rtables - Structure-Conditional Behavior In afuns With .spl_context
- Advanced rtables - Understanding and Interacting With TableTree Objects
- Advanced rtables - Useful Behavioral Building Blocks For Complex Custom afuns
- Advanced rtables - Using make_split_fun Effectively
- Advanced rtables - Writing Custom Pruning Functions
- Advanced rtables - Writing Custom Scoring Functions For Sorting
- Advanced rtables - Writing Reusable Behavior Building Blocks
- Column Counts and Formats
- Comparing Against Baselines or Control
- Comparison with dplyr Tabulation
- Constructing rtables Manually
- Controlling Splitting Behavior
- Customizing Appearance
- Example Clinical Trials Tables
- Example Complex Analysis Function: Modelling Cox Regression
- Exploratory Analysis
- Format Precedence and NA Handling
- Generating QC-Ready Result Data Frames (ARDs) from Tables
- Intermediate rtables - Identifying Required Analysis Behavior
- Intermediate rtables - Identifying Required Faceting Behavior
- Intermediate rtables - Translating Shells To Layouts
- Introductory rtables - Basic Table Layout Instructions
- Introductory rtables - Facet And Analysis Nesting
- Introspecting Tables
- Pathing and Table Structure
- Pruning and Sorting Tables
- Subsetting and Manipulating Table Contents
- Tabulation Concepts
- Titles, Footers, and Referential Footnotes
- {rtables
Other documentation
- README
- Yes, 519 words
- Release notes file
- Yes
- Help pages
- 128
- Lines of documentation
- 11,496
People
Method, People Method People on the site are the names packages give them in their Author and maintainer identity
DESCRIPTION files: authors from the author list, and the maintainer from the Maintainer field. Spellings of one name become one person only where the rules below allow it, and when in doubt the rules keep people apart.
Maintainer since 0.6.3 (2023), previously Gabriel Becker (0.3.6 to 0.6.1), author
F. Hoffmann-La Roche AG, an organisation
Copyright holder
Author
Author
Contributor
Contributor
Contributor
Author
Contributor
Author
Funded by F. Hoffmann-La Roche AG
Repository
Method, figures by host Method Repository signals are the figures read from the source repository a package links to: stars, forks, issues, commits, releases and the time issues take to close. They are read from GitHub, GitLab, Codeberg and Bitbucket.Repository signals
URL and BugReports fields of its DESCRIPTION file. Read-only mirrors, the cran and bioc accounts on GitHub and git.bioconductor.org, are left out.
pharmaverse / rtables on github.com
- Stars
- 262+0.77% up on 30 days ago, the better direction
- Forks
- 54
- Open issues
- 48
- Last commit
- 1 Oct 2026
Activity
- Commits
- 1,274
- Open pull requests
- 0
- Tagged releases
- 35
- Latest tagged release
- v0.6.17, 1 Oct 2026
- In development
- Default branch at 0.6.17.9000, ahead of CRAN 0.6.17 (checked 2026-10-25)
- Issues closed in
- 36 days (median)
- Pull requests closed in
- 4 days (median)
- Pull requests merged
- 87%
- Created
- 15 Nov 2017
- Licence file reads as
- –
Development practices (14)
| Kind | Found |
|---|---|
| Continuous integration | GitHub Actions, GitLab CI |
| Governance and community | Code of conduct, Contributing guide, Issue templates, CODEOWNERS |
| Docs source | README.Rmd, pkgdown GitHub Pages site last deployed 2026-10-06 |
| Coverage | Coverage reporting |
| CRAN release process | revdep/ |
| Automation and maintenance | pre-commit |
| Lint, format, editor | lintr, RStudio project |
Method, repository practices Method Beta Each week a scan of the public source repository a package links to looks for the tools a maintainer has set up, and the Repository section lists the findings. Repositories on GitHub and GitLab are scanned.Repository practices
R CMD build reads .Rbuildignore and leaves out files used only in development, such as .github/, .lintr, renv/, a Dockerfile and cran-comments.md, so the released source file holds almost none of them. The repository is the one place these files stay visible.
Earlier repositories (1)
AI tools
Method, AI tools Method Beta What is found in a repository is not a measure of the code.AI tool findings
Tools
| Tool | First seen | Commits crediting it |
|---|---|---|
| Claude Code | 25 Jul 2026 or earlier | 1 at least |
| GitHub Copilot | 25 Aug 2026 or earlier | 2 at least |
Models
| Model | Commits | First commit | Last commit | Credit lines of |
|---|---|---|---|---|
| Claude Sonnet 4.6 | 1 | 26 Jul 2026 | 26 Jul 2026 | Claude Code |
History
Method, History Method Archived is built from CRAN's archive records, its list of check deadlines and Bioconductor's package records. Every figure is counted to 28 Oct 2026, the day the data was read.Packages leaving
| Version | Released | R |
|---|---|---|
| 0.6.17 current | 1 Oct 2026 | 4.6.1 |
| 0.6.16 | 22 Apr 2026 | 4.5.3 |
| 0.6.15 | 14 Dec 2025 | 4.5.2 |
| 0.6.14 | 18 Nov 2025 | 4.5.2 |
| 0.6.13 | 19 Jun 2025 | 4.5.1 |
| 0.6.12 | 11 Apr 2025 | 4.5.0 |
| 0.6.11 | 10 Jan 2025 | 4.4.2 |
| 0.6.10 | 20 Sep 2024 | 4.4.1 |
Earlier versions (12)
Release notes (0.6.17)
New Features
- Added
restrict_facetsfunction factory for use withmake_split_fun@gmbecker - Exported previously internal
make_subset_exprfor use when constructing custom splitting behavior - Exported previously internal
splv_extraandsplv_extra<-accessors for getting and setting child-specific extra arguments onSplitValueobjects. - Exported previously internal
value_expraccessor for retrieving the subsetting expression from aSplitValueorValueWrapperobject. - The
.alt_df*family of afun arguments now receive subsets ofdfwhenalt_counts_dfis not specified in thebuild_tablecall; previously resulted in an error. - Exported previously internal
RefFootnoteconstructor for reference footnote objects. - Added accessor methods for
RowsVerticalSection objects:row_cells,obj_format,obj_format<-,obj_na_str,obj_na_str<-,cell_values - Added
cmethod for directly combiningRowsVerticalSectionobjects - Added vignette: Guided Tour (Advanced) @gmbecker
- Added vignette: Guided Tour (Advanced) - Custom Analysis And Summary Functions @gmbecker
- Added vignette: Guided Tour (Advanced) - Analysis Functions - Split Context @gmbecker
- Added vignette: Guided Tour (Advanced) - Analysis Functions - Combining Existing
afuns @gmbecker - Added vignette: Guided Tour (Advanced) - Analysis Functions - (stub) Useful Building Blocks @gmbecker
- Added vignette: Guided Tour (Advanced) - Custom Split Functions @gmbecker
- Added vignette: Guided Tour (Advanced) - Custom Split Functions - (stub)
make_split_fun@gmbecker - Added vignette: Guided Tour (Advanced) - Custom Split Functions - Behavioral Building Block @gmbecker
- Added vignette: Guided Tour (Advanced) - Custom Split Functions - (stub) Worked Examples @gmbecker
- Added vignette: Guided Tour (Advanced) - (stub)
TableTreeObjects @gmbecker - Added vignette: Guided Tour (Advanced) - (stub)
TableTreeObjects - (stub) Accessing Table Values @gmbecker - Added vignette: Guided Tour (Advanced) - (stub)
TableTreeObjects - (stub) Custom Scoring Functions For Sorting @gmbecker - Added vignette: Guided Tour (Advanced) - (stub)
TableTreeObjects - (stub) Custom Pruning Functions @gmbecker - Added
at_siblingparameter tosplit_rows_by*andanalyzefunctions, enabling placement of a new layout directive as a direct sibling of a previously declared split or analysis @gmbecker - Added
get_anchor_list()function for inspecting the available sibling anchors in an existing layout @gmbecker label_posnow accepts"default"as a value, which resolves to"visible"whenat_siblingis non-NULLand"hidden"otherwise @gmbecker
Bug Fixes
indent_mod<-RowsVerticalSectionmethod now correctly recycles length 1 values @gmbecker- Fixed
uniqify_child_namesemitting messages ending in a literalFALSEdue to passingcall. = FALSEtomessage(), which does not accept that argument @gmbecker - content functions now receive correct
.ref_groupvalue instead of a data.frame with zero rows, when requested. #1117 @gmbecker - Fix in the now exported
RefFootnotein check for disallowed values insymbolargument