The reporter package creates statistical reports in TXT, RTF, PDF, HTML, and DOCX file formats. Features include automatic page wrapping and breaking for wide and long tables, spanning headers, titles, footnotes, page headers, page footers, and page numbering. The package allows mixing of multiple tables, text, and plots in a single report, or even on a single page.
The reporter package creates regulatory-style, statistical reports. It was designed to create tables, listings, and figures (TLFs) for use in the pharmaceutical, biotechnology, and medical-device industries. However, the functions are generalized enough to provide statistical reporting for any industry. The package is written primarily in Base R, and has few dependencies on other packages.
The package is intended to give R programmers flexible report layout capabilities, and a choice of output formats. The package will initially focus on printable, file-based output formats, as there are already numerous R packages that provide tabular reporting in HTML.
PDF output may have limitations not associated with other output types. See NotesOnPDF for more information.
The reporter package contains the following key features:
Titles, footnotes, page header, and page footer are repeated on each page
Supports header labels and spanning headers
Calculates default columns widths automatically
Includes automatic wrapping and splitting of wide and long tables
Integrates with the fmtr package to format numeric, date, and character data
Plots from the popular ggplot2 package can be added to RTF, PDF, HTML, and DOCX reports
Allows appending multiple tables to a report, multiple tables to a page, and intermingling of text, tables, and plots
Supports in-report date/time stamps and "Page X of Y" page numbering
create_report
to define a report
create_table
to define a table
create_text
to define text content
create_plot
to define a plot
write_report
to write out the report
Note that the reporter package is built on several assumptions, and has some limitations. Those assumptions and limitations are as follows:
The current version supports both a monospace, fixed-width style
report and a variable-width style report. The monospace report is the
default. To create a variable width report, set the font parameter on
the create_report
function to 'Arial', 'Courier', or 'Times'.
If a font is selected, it will be applied uniformly to the entire report. The package has no capabilities to mix different fonts in the same report.
The package assumes that, except for formatting and layout, the incoming data is ready for printing. The reporter package has no capabilities to perform calculations, summaries, grouping, or derivations. Use the many capabilities in R to perform these operations prior to sending data to the reporter package.
It is assumed that the incoming data is sorted as desired. The reporter package has no capabilities for sorting. Use the sorting functionality in Base R or supplemental packages to sort the data prior to sending to reporter.
For monospace reports, titles, footnotes, page headers, and page footers must fit in the available space. If they don't, the reporter package will generate a warning. In these situations, the recommended course of action is to split the offending string into two or more strings that fit within the available width.
The reporter package will never break a word. That means you
cannot set a column width that is less than the length of the longest
word. If you wish to break words, add the breaks with
strwrap
or an equivalent function before reporting.
The package will make a best guess on column widths based on the
width of the data and column headers. To override the best guess,
set the column width directly by placing a width attribute on the variable
or by using the column_defaults
or
define
functions.
The max automatic column width is 5 inches. Longer data values will be wrapped.
The package support plots from ggplot2. These plots can be added to RTF, PDF, HTML, and DOCX output types. The package does not support Base R plots.
The package currently supports styling for HTML reports. This styling allows setting background colors, font colors, border colors, and some font sizing and bolding.
Useful links: