Data frame summaries, cross-tabulations, weight-enabled frequency tables and common descriptive (univariate) statistics in concise tables available in a variety of formats (plain ASCII, Markdown and HTML). A good point-of-entry for exploring data, both for experienced and new R users.
tb()
turns freq()
and descr()
outputs into "tidy" tibblesuse_custom_lang()
replaces useTranslations()
and triggers an
Open File... dialog when no argument is supplieddefine_keywords()
allows defining translatable terms in GUI and
optionally save the results in a csv file (through Save File... dialog)byst()
had to be dropped because of issues related to objects names;
so only stby()
is accepted from now onuseTranslations()
has been replaced by use_custom_lang()
freq()
:
cumul
allows turning on or off cumulative proportionsorder
parameter: "names", "freq", and "levels" values now have their
counterparts "-names" (or "names-"), "-freq" and "-levels"rows
has been added; it allows subsetting the output
table either with a numeric vector, a character vector, or a single
search string (regex)ctable()
:
dfSummary()
:
No changes (re-submission of 0.9.1 to CRAN)
For users updating solely from CRAN, this is a major update. Many changes were introduced since version 0.8.8 (versions 0.8.9 and 0.9.0 were released solely on GitHub). Please refer to the README file, the two vignettes and the information below for all the details.
In this version:
stby()
, a summarytools-specific version of by()
, is
introduced. It is highly recommended that you use it instead of by()
;
its syntax is identical and it greatly simplifies the printing of the
generated objectsdfSummary()
:
example()
function to access themst_options(lang='fr')
gives access to French translations. Spanish ('es')
translations are also available.useTranslations()
allows using custom translations; see the
introductory vignette for detailsdescr()
, the weighting variable (when used) is automatically removed
from the list of variables to analyzedfSummary()
, images are processed using functions from the magick
package, improving the general layout of the output tablesdfSummary()
:
descr()
, the 'stats' parameter accepts values "common" and "fivenum"st_options()
, setting multiple options at once is now possible; all
options have their own parameter (the legacy way of setting options is still
supported)print()
or view()
-
refer to the print()
method's documentation to learn moreTwo somewhat backward-compatibility breaking changes:
Special thanks to Paul Feitsma for his numerous suggestions.
dfSummary()
:
dfSummary()
where reported percentages could exceed
100% under specific circumstancesdfSummary()
when missing values were present along
with whole numbersdescr()
where group was not shown for the first
group when omitting headingsdfSummary()
:
%>%
) operatordescr()
, fixed a calculation error for coefficient of variation (cv)ctable()
html outputs, '<' and '>' are properly escaped when appearing
in row or column namesdfSummary()
:
dfSummary()
now use lubridate::as.period()
ctable()
, argument 'useNA' now correctly accepts value "no"dfSummary()
histograms changed
(from nclass.FD()
to nclass.Sturges()
)dfSummary()
with time objectsdfSummary()
when
"[1 other value]" was displayed; this actual value is now displayed insteadst_options()
freq()
: 'totals' and 'display.nas'descr()
, Q1 and Q3 were added; also, the order in the 'stats'
argument is now reflected in the output tabledfSummary()
:
print()
and view()
, argument 'html.table.class' is now called
'table.classes' and its usage is simplified (please refer to the
corresponding help files for detailsdfSummary()
bar chartsdfSummary()
lapply()
when used with freq()
dfSummary()
dfSummary()
dfSummary()
lapply()
to be used with freq()
by()
and with()
with descr()
, freq()
,
and ctable()
Backward-compatibility notes: in dfSummary()
, parameter name 'display.labels'
has been changed to 'labels.col', for consistency reasons. Also, see Notes
for Version 0.6.9 about the 'file' parameter.
Another GitHub-only release
dfSummary()
's last column now includes counts and percentages for both
valid and missing dataIn this GitHub-only release:
ctable()
for cross-tabulationsby()
and/or with()
:
variable names, labels and by-groups are now displayed correctlyview()
is now more than just a wrapper function for the print()
method;
it is the function to use when printing an object created with by()
print()
or view()
freq()
has an new parameter, 'order', allowing to order rows by count
rather than valuesdescr()
observations table has been improvedAn important change causing a minor break in backward compatibility:
the 'file' parameter must now be used with print()
or view()
; its
use with other functions is now deprecated.
dfSummary()
which arose when number of factor levels
exceeded max.distinct.valuesdfSummary()
reports frequencies for character variablesprint()
method to suppress the footnote in HTML
outputsmethod = "browser"
sends file path to browser for better
cross-platform compatibilityby()
For this GitHub-only release:
descr()
now supports weightswhat.is()
has been simplifiedAdded cat()
functions to fully support knitr's document generation. Also added
sample datasets so that users can experiment using summarytools functions with
them. freq()
now supports weights.
Another round of major changes
desc()
is renamed descr()
(mainly to avoid conflict with
plyr::desc()
)as.table()
print.summarytools()
freq()
, and also descr()
when a single
vector is usedprint.summarytools()
has argument 'method' that can be one of "pander",
"viewer", or "browser", the last two being used to display an HTML version
of the output, using Bootstrap's css (https://getbootstrap.com).parse.arg.x()
takes
care of this)Several major changes since version 0.1
unistats()
is now called desc()
frequencies()
is now called freq()
properties()
is now called prop()
desc()
now accepts data frames as first argument; factors and character
columns will be ignoreddesc()
can be transposed to suit one's preferencesfreq()
just returns a matrix-table, not a list anymoredesc()
and freq()
, no more argument 'display.label'. Those are
displayed automatically when presentproperties()
was removed for now. May be reintegrated in a future
versionInitial Release