From 6a61799d4305f6613daf5ab1084f0e04519ff4da Mon Sep 17 00:00:00 2001 From: Dominic Comtois Date: Wed, 10 Apr 2019 12:32:30 -0400 Subject: [PATCH] vignettes update --- README.Rmd | 45 ++- doc/Introduction to summarytools.htm | 547 +++++++++++++-------------- doc/Recommendations-rmarkdown.htm | 244 ++---------- img/define_keywords.png | Bin 25574 -> 37944 bytes vignettes/Introduction.Rmd | 2 +- vignettes/define_keywords.png | Bin 25574 -> 37944 bytes 6 files changed, 318 insertions(+), 520 deletions(-) diff --git a/README.Rmd b/README.Rmd index f0c307e3..38055ce0 100644 --- a/README.Rmd +++ b/README.Rmd @@ -64,15 +64,12 @@ outputs produced by **summarytools** can be: - Written to plain or *Rmarkdown* text files It is also possible to include **summarytools**' functions in *Shiny apps*. -Notably, [radiant](https://CRAN.R-project.org/package=radiant), -a Shiny-based package for business analytics, uses `dfSummary()` to describe -imported data frames. ### Latest Improvements Version 0.9 brings **many** changes and improvements. A summary of those changes can be found [near the end of this page](#latest-changes). Changes -specific to the latest release can be found in the _NEWS_ file. +specific to the latest release can be found in the [NEWS](https://github.com/dcomtois/summarytools/blob/master/NEWS.md) file. ## How to install @@ -141,7 +138,8 @@ freq(iris$Species, report.nas = FALSE, style = "rmarkdown", headings = FALSE) ``` We can simplify the results further and omit the _Totals_ row by specifying -`totals = FALSE`, as well as `cumul = FALSE`: +`totals = FALSE`, as well as omit the _cumulative_ rows by setting +`cumul = FALSE`. ```{r} freq(iris$Species, report.nas = FALSE, totals = FALSE, cumul = FALSE, style = "rmarkdown", headings = FALSE) @@ -151,21 +149,20 @@ To get familiar with the various output styles, try different values for `style` -- “simple”, “rmarkdown” or “grid”, and see how this affects the results in the console. -#### Subsetting Rows in Frequency Table -The "rows" argument allows subsetting the resulting frequency table; it can -work in 3 distinct ways: +#### Subsetting Rows in Frequency Tables +The "rows" argument allows subsetting the resulting frequency table; we can use it in 3 different ways: - - To select rows by position, use a numerical vector; `rows = 1:10` will + - To select rows by position, we use a numerical vector; `rows = 1:10` will show the frequencies for the first 10 values only - - To select rows by name either use - + a character vector specifying all desired values + - To select rows by name, we either use + + a character vector specifying all desired values (row names) + a single character string to be used as a regular expression; only the matching values will be displayed Used in combination with the "order" argument, this can be quite practical. Say we have a character variable containing many distinct values and wish to -see frequencies only for the 5 most common values; to obtain the desired table, -we would simply use `order = "freq"` along with `rows = 1:5`. +know which ones are the 10 most frequent. To achieve this, we would simply +use `order = "freq"` along with `rows = 1:5`. #### Generating Several Frequency Tables at Once @@ -176,8 +173,9 @@ the data frame object (subsetted if needed) to `freq()`: (results not shown) freq(tobacco[ ,c("gender", "age.gr", "smoker")]) ``` -We can without fear pass a whole data frame to `freq()`; the function will -ignore numerical variables having many distinct values. +We can without fear pass a whole data frame to `freq()`; it will figure out +which variables to ignore (numerical variables having many distinct +values). ## 2 - ctable() : Cross-Tabulations @@ -200,7 +198,8 @@ By default, `ctable()` shows row proportions. To show column or total proportions, use `prop = "c"` or `prop = "t"`, respectively. To omit proportions, use `prop = "n"`. -In the next example, we'll create a simple “2 x 2” table: +In the next example, we'll create a simple “2 x 2” table +(no proportions, no totals): ```{r, eval = FALSE} with(tobacco, @@ -211,8 +210,8 @@ with(tobacco, #### Chi-square results To display chi-square results below the table, set the "chisq" parameter to -`TRUE`. This time, instead of `with()`, we'll use the `%$%` operator for -**magrittr**. +`TRUE`. This time, instead of `with()`, we'll use the `%$%` operator from the +**magrittr** package, which works in a very similar fashion. ```{r, eval=FALSE} library(magrittr) @@ -252,7 +251,7 @@ descr(iris, stats = "common", transpose = TRUE, headings = FALSE, style = "rmark ## 4 - dfSummary() : Data Frame Summaries `dfSummary()` collects information about all variables in a data frame and -displays it in a singe, legible table. +displays it in a single legible table. To generate a summary report and have it displayed in RStudio’s Viewer pane (or in the default Web browser if working outside RStudio), @@ -307,7 +306,7 @@ system’s default browser. ## Using stby() to Ventilate Results We can use `stby()` the same way as *R*’s base function `by()` with the four -core summarytools functions. It returns a list-type object +core **summarytools** functions. This returns a list-type object containing as many elements as there are categories in the grouping variable. **Why not just use `by()`?** The reason is that `by()` creates objects of @@ -411,6 +410,9 @@ more _knitr_'s options. # ``` ```` +Since `results = 'asis'` can conflict with other packages' way of generating +results, it is sometimes best to use it for individual chunks only. + ### Managing Lengthy dfSummary() Outputs in Rmarkdown Documents For data frames containing numerous variables, we can use the `max.tbl.height` @@ -714,9 +716,6 @@ Sys.setlocale("LC_CTYPE", "") st_options(lang = "en") ``` -Note that russian translations are not currently available, but should be in -the next release. - ### Defining and Using Custom Translations Using the function `use_custom_lang()`, it is possible to add your own set of diff --git a/doc/Introduction to summarytools.htm b/doc/Introduction to summarytools.htm index 547fd3ae..90c4f34a 100644 --- a/doc/Introduction to summarytools.htm +++ b/doc/Introduction to summarytools.htm @@ -12,7 +12,7 @@ - + Introduction to summarytools @@ -291,6 +291,9 @@ code > span.fu { color: #900; font-weight: bold; } code > span.er { color: #a61717; background-color: #e3d2d2; } + + + @@ -299,8 +302,8 @@

Introduction to summarytools

-

Dominic Comtois

-

2019-02-16

+

Dominic Comtois

+

2019-04-10

@@ -318,33 +321,33 @@

2019-02-16

-

It is also possible to include summarytools’ functions in Shiny apps. Notably, radiant, a Shiny-based package for business analytics, uses dfSummary() to describe imported data frames.

+

It is also possible to include summarytools functions in Shiny apps.

Latest Improvements

-

Version 0.9 brings many changes and improvements. A summary of those changes can be found near the end of this vignette.

+

Version 0.9 brought many changes and improvements to summarytools. A summary of those changes can be found near the end of this vignette. Changes specific to the latest release can be found in the package’s NEWS file.

This Vignette’s Setup

-

Since this vignette was created using Rmarkdown, we’ve set some global options that are appropriate for this format and which avoid redundancy in the code. Here’s what the setup chunk looks like (further explanations will be given further below):

+

Since this vignette was created using Rmarkdown, we’ve set some global options that are appropriate for this format and which avoid redundancy in the code. Here’s what the setup chunk looks like (further explanations will be given below):

# ```{r setup, include=FALSE}
 # library(knitr)
-# opts_chunk$set(results = 'asis',      # This one is essential
+# opts_chunk$set(results = 'asis',      # This is essential (can also be set at the chunk-level)
 #                comment = NA, 
 #                prompt = FALSE, 
 #                cache = FALSE)
 #
 # library(summarytools)
 # st_options(plain.ascii = FALSE,       # This is very handy in all Rmd documents
-#            style = "rmarkdown"        # idem
+#            style = "rmarkdown"        # This too
 #            footnote = NA,             # Avoids footnotes which would clutter the results
 #            subtitle.emphasis = FALSE  # This is a setting to experiment with - according to
-# )                                     # the theme used, it might produce better results one way
-#                                       # or another
+# )                                     # the theme used, it might improve the headings' 
+#                                       # layout
 # ```
-# 
+
 # ```{r, echo=FALSE}
 # st_css()                              # This is a must; without it, expect odd layout,
 # ```                                   # especially with dfSummary()
@@ -455,21 +458,62 @@

Frequencies

-

We can simplify the results further and omit the Totals row by specifying totals = FALSE.

+

We can simplify the results further and omit the Totals row by specifying totals = FALSE, as well as omit the cumulative rows by setting cumul = FALSE.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
 Freq%
setosa5033.33
versicolor5033.33
virginica5033.33

To get familiar with the various output styles, try different values for style – “simple”, “rmarkdown” or “grid”, and see how this affects the results in the console.

+
+

Subsetting Rows in Frequency Tables

+

The “rows” argument allows subsetting the resulting frequency table; we can use it in 3 different ways:

+
    +
  • To select rows by position, we use a numerical vector; rows = 1:10 will show the frequencies for the first 10 values only
  • +
  • To select rows by name, we either use +
      +
    • a character vector specifying all desired values (row names)
    • +
    • a single character string to be used as a regular expression; only the matching values will be displayed
    • +
  • +
+

Used in combination with the “order” argument, this can be quite practical. Say we have a character variable containing many distinct values and wish to know which ones are the 10 most frequent. To achieve this, we would simply use order = "freq" along with rows = 1:5.

-
-

Generating Several Frequency Tables at Once

+
+

Generating Several Frequency Tables at Once

There is more than one way to do this, but the best approach is to simply pass the data frame object (subsetted if needed) to freq(): (results not shown)

- -

We can without fear pass a whole data frame to freq(); it will figure out which variables to ignore (continuous numerical variables, or variables having many, many distinct values).

+ +

We can without fear pass a whole data frame to freq(); it will figure out which variables to ignore (numerical variables having many distinct values).

+

2 - ctable() : Cross-Tabulations

We’ll now use a sample data frame called tobacco, which is included in summarytools. We want to cross-tabulate two categorical variables: smoker and diseased.

Since markdown does not support multiline headings, we’ll show a rendered html version of the results:

- +

Cross-Tabulation, Row Proportions

@@ -549,11 +593,11 @@

Cross-Tabulation, Row Proportions

-

By default, ctable() shows row proportions. To show column or total proportions, use prop = "c" or prop = "t", respectively. To omit proportions, use prop = "n".

-

In the next example, we’ll create a simple “2 x 2” table:

- +

By default, ctable() shows row proportions. To show column or total proportions, use prop = "c" or prop = "t", respectively. To omit proportions, use prop = "n".

+

In the next example, we’ll create a simple “2 x 2” table (no proportions, no totals):

+
@@ -595,11 +639,110 @@

Cross-Tabulation, Row Proportions

+
+

Chi-square results

+

To display chi-square results below the table, set the “chisq” parameter to TRUE. This time, instead of with(), we’ll use the %$% operator from the magrittr package, which works in a very similar fashion.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
smoker
+gender +YesNoTotal
+F +147(30.1%)342(69.9%)489(100.0%)
+M +143(29.2%)346(70.8%)489(100.0%)
+<NA> +8(36.4%)14(63.6%)22(100.0%)
+Total +298(29.8%)702(70.2%)1000(100.0%)
+

 Χ2 = .5415   df = 2   p = .7628

+
+

Note that a warning will be issued when at least one expected cell counts is lower than 5.

+

3 - descr() : Descriptive Univariate Stats

The descr() function generates common central tendency statistics and measures of dispersion for numerical data. It can handle single vectors as well as data frames, in which case it will ignore non-numerical columns (and display a message to that effect).

- +
Non-numerical variable(s) ignored: Species

Descriptive Statistics

@@ -624,7 +767,7 @@

Descriptive Statistics

3.06 -Std.Dev. +Std.Dev 1.77 0.76 0.83 @@ -715,7 +858,7 @@

Descriptive Statistics

150.00 -% Valid +Pct.Valid 100.00 100.00 100.00 @@ -728,19 +871,19 @@

Descriptive Statistics

Transposing, Selecting Statistics

If your eyes/brain prefer seeing things the other way around, just use transpose = TRUE. Here, we also select only the statistics we wish to see, and specify headings = FALSE to avoid reprinting the same information as above.

We specify the stats we wish to report with the stats argument, which also accepts values “all”, “fivenum”, and “common”. See ?descr for a complete list of available statistics.

- +
Non-numerical variable(s) ignored: Species
- + - + @@ -790,184 +933,37 @@

Transposing, Selecting Statistics

4 - dfSummary() : Data Frame Summaries

-

dfSummary() collects information about all variables in a data frame and displays it in a singe, legible table.

+

dfSummary() collects information about all variables in a data frame and displays it in a single legible table.

To generate a summary report and have it displayed in RStudio’s Viewer pane (or in the default Web browser if working outside RStudio), we simply do as follows:

- +

Of course, it is also possible to use dfSummary() in Rmarkdown documents. It is usually a good idea to exclude a column or two, otherwise the table might be a bit too wide. For instance, since the Valid and NA columns are redundant, we can drop one of them.

- -
temporary images written to 'D:\tmp'
-
-

Data Frame Summary

-

tobacco
-Dimensions: 1000 x 9
-Duplicates: 2

-
  MeanStd.Dev.Std.Dev Min Median Max N.Valid% ValidPct.Valid
-------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NoVariableStats / ValuesFreqs (% of Valid)GraphMissing
1gender
-[factor]
1. F
-2. M
489 (50.0%)
-489 (50.0%)
22
-(2.2%)
2age
-[numeric]
Mean (sd) : 49.6 (18.3)
-min < med < max:
-18 < 50 < 80
-IQR (CV) : 32 (0.4)
63 distinct values25
-(2.5%)
3age.gr
-[factor]
1. 18-34
-2. 35-50
-3. 51-70
-4. 71 +
258 (26.5%)
-241 (24.7%)
-317 (32.5%)
-159 (16.3%)
25
-(2.5%)
4BMI
-[numeric]
Mean (sd) : 25.7 (4.5)
-min < med < max:
-8.8 < 25.6 < 39.4
-IQR (CV) : 5.7 (0.2)
974 distinct values26
-(2.6%)
5smoker
-[factor]
1. Yes
-2. No
298 (29.8%)
-702 (70.2%)
0
-(0%)
6cigs.per.day
-[numeric]
Mean (sd) : 6.8 (11.9)
-min < med < max:
-0 < 0 < 40
-IQR (CV) : 11 (1.8)
37 distinct values35
-(3.5%)
7diseased
-[factor]
1. Yes
-2. No
224 (22.4%)
-776 (77.6%)
0
-(0%)
8disease
-[character]
1. Hypertension
-2. Cancer
-3. Cholesterol
-4. Heart
-5. Pulmonary
-6. Musculoskeletal
-7. Diabetes
-8. Hearing
-9. Digestive
-10. Hypotension
-[ 3 others ]
36 (16.2%)
-34 (15.3%)
-21 ( 9.5%)
-20 ( 9.0%)
-20 ( 9.0%)
-19 ( 8.6%)
-14 ( 6.3%)
-14 ( 6.3%)
-12 ( 5.4%)
-11 ( 5.0%)
-21 ( 9.5%)
778
-(77.8%)
9samp.wgts
-[numeric]
Mean (sd) : 1 (0.1)
-min < med < max:
-0.9 < 1 < 1.1
-IQR (CV) : 0.2 (0.1)
0.86!: 267 (26.7%)
-1.04!: 249 (24.9%)
-1.05!: 324 (32.4%)
-1.06!: 160 (16.0%)
-! rounded

-
-
0
-(0%)
+ +

While rendering html tables with view() doesn’t require it, here it is essential to specify tmp.img.dir. We’ll explain why further below.

+
+

Tidy Tables With tb()

+

When generating freq() or descr() tables, it is possible to turn the results into “tidy” tables with the use of the tb() function (think of tb as a diminutive for tibble). For example:

+ +
# A tibble: 4 x 8
+  variable    mean         sd           min   med   max   n.valid pct.valid
+  <chr>       <chr>        <chr>        <chr> <chr> <chr> <chr>   <chr>    
+1 Petal.Leng~ 3.758        1.765298233~ 1     4.35  6.9   150     100      
+2 Petal.Width 1.199333333~ 0.762237668~ 0.1   1.3   2.5   150     100      
+3 Sepal.Leng~ 5.843333333~ 0.828066127~ 4.3   5.8   7.9   150     100      
+4 Sepal.Width 3.057333333~ 0.435866284~ 2     3     4.4   150     100      
+ +
# A tibble: 3 x 3
+  value       freq   pct
+  <fct>      <dbl> <dbl>
+1 setosa        50  33.3
+2 versicolor    50  33.3
+3 virginica     50  33.3
+

By definition, no total rows are part of tidy tables, and row.names are converted to regular columns. For now, tb() doesn’t handle split-group tables, but it is certainly in store for a future release of summarytools.

The print() and view() Functions

@@ -975,13 +971,13 @@

The print() and view() Functions

Using stby() to Ventilate Results

-

We can use stby() the same way as R’s base function by() with the four core summarytools functions. It returns a list-type object containing as many elements as there are categories in the grouping variable.

+

We can use stby() the same way as R’s base function by() with the four core summarytools functions. This returns a list-type object containing as many elements as there are categories in the grouping variable.

Why not just use by()? The reason is that by() creates objects of class “by()”, which have a dedicated print() method conflicting with summarytools’ way of printing list-type objects. Since print.by() can’t be redefined (as of CRAN policies), the sensible solution was to introduce a function that is essentially a clone of by(), except that the objects it creates have the class “stby”, allowing the desired flexibility.

Using the iris data frame, we will now display descriptive statistics by Species.

- +
Non-numerical variable(s) ignored: Species

Descriptive Statistics

@@ -993,7 +989,7 @@

Descriptive Statistics

  Mean -Std.Dev. +Std.Dev Min Median Max @@ -1041,7 +1037,7 @@

Descriptive Statistics

  Mean -Std.Dev. +Std.Dev Min Median Max @@ -1089,7 +1085,7 @@

Descriptive Statistics

  Mean -Std.Dev. +Std.Dev Min Median Max @@ -1131,13 +1127,13 @@

Descriptive Statistics

To see an html version of these results, we simply use view() (also possible is to use print() with method = "viewer"): (results not shown)

- +

A special situation occurs when we want grouped statistics for one variable only. Instead of showing several tables, each having one column, summarytools assembles everything into a single table:

- +

Descriptive Statistics

@@ -1163,7 +1159,7 @@

Descriptive Statistics

27.45 -Std.Dev. +Std.Dev 4.23 4.34 4.26 @@ -1198,7 +1194,7 @@

Descriptive Statistics

  Mean -Std.Dev. +Std.Dev Min Median Max @@ -1243,18 +1239,18 @@

Descriptive Statistics

Using summarytools in Rmarkdown Documents

-

As we have seen, summarytools can generate both text/markdown and html results. Both types of outputs can be used in Rmarkdown documents. The vignette Recommendations for Using summarytools With Rmarkdown provides good guidelines, but here are a few tips to get started:

+

As we have seen, summarytools can generate both text/markdown and html results. Both types of outputs can be used in Rmarkdown documents. The vignette Recommendations for Using summarytools With Rmarkdown provides good guidelines, but here are a few tips to get started:

  • Always set the knitr chunk option results = 'asis'. You can do this on a chunk-by-chunk basis, but it is easier to just set it globally in a “setup” chunk:
- +

          Refer to this page for more knitr’s options.

  • To get better results when generating html output with method = 'render', set up your .Rmd document so that it includes summarytools’ css. The st_css() function makes this very easy.
  • @@ -1279,12 +1275,13 @@

    Initial Setup – Example

    # ```{r, echo=FALSE} # st_css() # ``` +

    Since results = 'asis' can conflict with other packages’ way of generating results, it is sometimes best to use it for individual chunks only.

Managing Lengthy dfSummary() Outputs in Rmarkdown Documents

For data frames containing numerous variables, we can use the max.tbl.height argument to wrap the results in a scrollable window having the specified height, in pixels. For instance:

- +

Data Frame Summary

@@ -1302,7 +1299,6 @@

Data Frame Summary

Variable Stats / Values Freqs (% of Valid) - Graph Missing @@ -1314,7 +1310,6 @@

Data Frame Summary

1. F 2. M
489(50.0%)
489(50.0%)
- 22 (2.2%) @@ -1327,7 +1322,6 @@

Data Frame Summary

18 < 50 < 80 IQR (CV) : 32 (0.4) 63 distinct values - 25 (2.5%) @@ -1340,7 +1334,6 @@

Data Frame Summary

3. 51-70 4. 71 +
258(26.5%)
241(24.7%)
317(32.5%)
159(16.3%)
- 25 (2.5%) @@ -1353,7 +1346,6 @@

Data Frame Summary

8.8 < 25.6 < 39.4 IQR (CV) : 5.7 (0.2) 974 distinct values - 26 (2.6%) @@ -1364,7 +1356,6 @@

Data Frame Summary

1. Yes 2. No
298(29.8%)
702(70.2%)
- 0 (0%) @@ -1377,7 +1368,6 @@

Data Frame Summary

0 < 0 < 40 IQR (CV) : 11 (1.8) 37 distinct values - 35 (3.5%) @@ -1388,7 +1378,6 @@

Data Frame Summary

1. Yes 2. No
224(22.4%)
776(77.6%)
- 0 (0%) @@ -1408,7 +1397,6 @@

Data Frame Summary

10. Hypotension [ 3 others ]
36(16.2%)
34(15.3%)
21(9.5%)
20(9.0%)
20(9.0%)
19(8.6%)
14(6.3%)
14(6.3%)
12(5.4%)
11(5.0%)
21(9.5%)
- 778 (77.8%) @@ -1421,9 +1409,6 @@

Data Frame Summary

0.9 < 1 < 1.1 IQR (CV) : 0.2 (0.1)
0.86!:267(26.7%)
1.04!:249(24.9%)
1.05!:324(32.4%)
1.06!:160(16.0%)
! rounded
- - - 0 (0%) @@ -1436,7 +1421,7 @@

Data Frame Summary

Writing Output to Files

We can use the file argument with print() or view() to indicate that we want to save the results in a file, be it html, Rmd, md, or just plain text (txt). The file extension indicates to summarytools what type of file should be generated.

- +
@@ -1847,7 +1832,7 @@

Overriding Headings Content

Example

Here’s an example in which we override 3 function-specific arguments, and one element of the heading:

- +

Frequencies

@@ -1975,12 +1960,12 @@

Customizing looks with CSS

summarytools uses RStudio’s htmltools package and version 4 of Bootstrap’s cascading stylesheets.

It is possible to include your own css if you wish to customize the look of the output tables. See ?print.summarytools for all the details, but here is a quick example.

Say you need to make the font size really really small. For this, you would create a .css file - let’s call it “custom.css” - containing a class definition such as the following:

- +

Then, to apply it to a summarytools object and display it in your browser:

- +

To display a smaller table that is not that small, you can use the provided css class st-small.

@@ -1994,10 +1979,10 @@

Working with Shiny apps

  • if dfSummary() outputs are too wide, try omitting a column or two (valid.col and varnumbers, for instance)
  • if needed, set the column widths manually with the col.widths parameter of the print() method or the view() function
  • - +

    Graphs in Markdown dfSummaries

    @@ -2025,13 +2010,13 @@

    Graphs in Markdown dfSummaries

    Translations

    -

    It is now possible to switch the language used in the outputs. So far, not too many languages are available (French, Spanish and Russian), but with the community’s involvement, I hope we can gather a good number of them in reasonable time.

    +

    It is now possible to switch the language used in the outputs. So far, the following languages are available, thanks to the R community’s efforts: French (fr), Portuguese (pt), Russian (ru), Spanish (es), and Turkish (tr).

    Switching Languages

    To switch languages, simply use

    - +

    Any function will now produce outputs using that language:

    - +

    Tableau de fréquences

    @@ -2095,22 +2080,30 @@

    Tableau de fréquences

    Non-UTF-8 Locales

    -

    On most Windows systems, it will be necessary to change the LC_CTYPE element of the locale settings if the character set is not included in the current locale. For instance, in order to get good results – or rather, any results at all – with the Russian language in a “latin1” environment, we’ll need to do this:

    - +

    On most Windows systems, it will be necessary to change the LC_CTYPE element of the locale settings if the character set is not included in the current locale. For instance, in order to get good results – or rather, any results at all – printing in the console with the Russian language, we’ll need to do this:

    +

    Then, to go back to default settings:

    - +

    Defining and Using Custom Translations

    -

    With the new function useTranslations(), you can add your own set of translations. For this, download the template csv file from this page.

    -

    After you’re done translating the +/- 70 items, simply call the useTranslations() function, giving it as sole argument the path to the csv file you’ve just created. Note that such custom translations will not persist across R sessions. This means that we should always have handy this csv file if we’re to print objects created with it.

    +

    With the new function use_custom_lang(), you can add your own set of translations. For this, create a copy of the language_template.csv file located in your system library, or download it from this page.

    +

    After you’re done translating the +/- 70 items, simply call the use_custom_lang() function, giving it as sole argument the path to the csv file you’ve just created. Note that such custom translations will not persist across R sessions. This means that you should always have handy this csv file if you’re to print objects created with it.

    +
    +
    +

    Defining Specific Keywords

    +

    Sometimes, all you might want to do is change just a few keywords – say you would rather have “N” instead of “Freq” in the title row of freq() tables. No need to create a full custom language for that. Rather, use define_keywords(). Calling this function without any arguments will bring up, on systems that support graphical devices (the vast majority, that is), an editable window allowing the modify only the desired items.

    +

    +

    After closing the edit window, you will be offered to export the resulting “custom language” into a .csv file that can be imported later on with use_custom_lang().

    +

    Note that it is also possible to define one or several keywords using function arguments. For the list of all possible keywords to define, see ?define_keywords. For instance:

    +
    -

    Latest Changes and Improvements

    -

    As stated earlier, version 0.9 brings many improvements to summarytools. Here are the key elements:

    +

    Changes and Improvements Since Version 0.9

    +

    As stated earlier, version 0.9 brough many improvements to summarytools. Here are the key elements:

    • Translations
    • Improved printing of list objects @@ -2123,6 +2116,7 @@

      Latest Changes and Improvements

    • st_options() now has as many parameters as there are options to set, making it possible to set all options with only one function call; legacy way of setting options is still supported
    • Several global options were added, with a focus on simplifying Rmarkdown document creation
    +
  • improved magrittr operators support (%>%, %$%)
  • Changes to freq()
    • As mentioned earlier, the function now accepts data frames as its main argument; this makes practically obsolete the use of lapply() with it
    • @@ -2141,13 +2135,13 @@

      Latest Changes and Improvements

  • Changes to dfSummary()
      -
    • Now fully compatible with Rmarkdown
    • -
    • Number of columns is now included in the heading section
    • +
    • Now fully compatible with Rmarkdown with its png graphs
    • +
    • Number of columns is included in the heading section
    • Number of duplicated rows is also shown in the heading section
    • -
    • Bar plots now more accurately reflect counts, as they are not stretched across table cells (this allows the comparison of frequencies across variables)
    • +
    • Bar plots now more accurately reflect counts, as they are not stretched across table cells (this allows comparison of frequencies across variables)
    • Columns with particular content (unary/binary, integer sequences, UPC/EAN codes) are treated differently; more relevant information is displayed, while irrelevant information is hidden
    • For html outputs, a new parameter col.widths can be used to set the width of the resulting table’s columns; this addresses an issue with some graphs not being shown at the desired magnification level (although much effort has been put into improving this as well)
    • -
    • max.tbl.height parameter added
    • +
    • max.tbl.height parameter is added, allowing lengthy summaries to be shown in a scrollable window
  • @@ -2156,21 +2150,22 @@

    Other Notable Changes

  • The omit.headings parameter has been replaced by the more straightforward (and still boolean) headings. omit.heandings is still supported but will be deprecated in future releases
  • Because it was subject to errors, the Rows Subset heading element has been removed. If there is a strong need for it, I can bring it back in a future release (just let me known by email or on GitHub if you’d like to have it back)
  • Under the hood, much has been going on; the lengthier functions have been split into more manageable parts, and several normalizing operations were performed, facilitating maintenance and improving code readability
  • +
  • The tb() function turns results from freq() and descr() into tidy tibbles
  • Backward Compatibility

    -

    No changes break backward compatibility, but at least one legacy feature will be abandoned in some further release. Namely, the boolean parameter omit.headings, which has been replaced by the more straightforward headings. For now, a message is shown whenever the “old” parameter name is used, encouraging users to switch to the newer one.

    +

    No changes break backward compatibility, but at least one legacy feature will disappear in some further release. Namely, the boolean parameter omit.headings, which has been replaced by the more straightforward headings. For now, a message is shown whenever the “old” parameter name is used, encouraging users to transition to the newer one.

    Stay Up-to-date

    Check out the GitHub project’s page - from there you can see the latest updates and also submit feature requests.

    -

    For a preview of what’s coming in the next release, see the development branch.

    +

    For a preview of what’s coming in the next release, have a look at the development branch.

    Final notes

    -

    The package comes with no guarantees. It is a work in progress and feedback / feature requests are welcome. Just send me an email (), or open an Issue on GitHub if you find a bug or wish to submit a feature request.

    +

    The package comes with no guarantees. It is a work in progress and feedback / feature requests are welcome. Just send an email to , or open an Issue on GitHub if you find a bug or wish to submit a feature request.

    diff --git a/doc/Recommendations-rmarkdown.htm b/doc/Recommendations-rmarkdown.htm index de4db4b7..6495fbb0 100644 --- a/doc/Recommendations-rmarkdown.htm +++ b/doc/Recommendations-rmarkdown.htm @@ -12,7 +12,7 @@ - + Recommendations for Using summarytools With Rmarkdown @@ -291,6 +291,9 @@ code > span.fu { color: #900; font-weight: bold; } code > span.er { color: #a61717; background-color: #e3d2d2; } + + + @@ -299,8 +302,8 @@

    Recommendations for Using summarytools With Rmarkdown

    -

    Dominic Comtois

    -

    2019-02-16

    +

    Dominic Comtois

    +

    2019-04-10

    @@ -309,19 +312,19 @@

    2019-02-16

    Configuration

    This document uses theme rmarkdown::html_vignette. Its yaml section looks like this:

    -
    ---
    -title: "Recommendations for Using summarytools With Rmarkdown"
    -author: "Dominic Comtois"
    -date: "'r Sys.Date()'"     <--- using backticks, not single quotes
    -output: 
    -  rmarkdown::html_vignette: 
    -    css: 
    -    - !expr system.file("rmarkdown/templates/html_vignette/resources/vignette.css", package = "rmarkdown")
    -vignette: >
    -  %\VignetteIndexEntry{Recommendations for Rmarkdown}
    -  %\VignetteEngine{knitr::rmarkdown}
    -  %\VignetteEncoding{UTF-8}
    ----
    +
    # ---
    +# title: "Recommendations for Using summarytools With Rmarkdown"
    +# author: "Dominic Comtois"
    +# date: "2019-04-10"
    +# output: 
    +#   rmarkdown::html_vignette: 
    +#     css: 
    +#     - !expr system.file("rmarkdown/templates/html_vignette/resources/vignette.css", package = "rmarkdown")
    +# vignette: >
    +#   %\VignetteIndexEntry{Recommendations for Rmarkdown}
    +#   %\VignetteEngine{knitr::rmarkdown}
    +#   %\VignetteEncoding{UTF-8}
    +# ---

    The following summarytools global options have been set. More of them can be useful, but this is a good starting point.

    st_options(bootstrap.css     = FALSE,       # Already part of the theme so no need for it
                plain.ascii       = FALSE,       # One of the essential settings
    @@ -678,7 +681,7 @@ 

    Descriptive Statistics

    1.00 -Std.Dev. +Std.Dev 18.29 4.49 11.88 @@ -769,7 +772,7 @@

    Descriptive Statistics

    1000.00 -% Valid +Pct.Valid 97.50 97.40 96.50 @@ -813,7 +816,7 @@

    Descriptive Statistics

    - Std.Dev. + Std.Dev 18.29 4.49 11.88 @@ -917,7 +920,7 @@

    Descriptive Statistics

    - % Valid + Pct.Valid 97.50 97.40 96.50 @@ -936,194 +939,7 @@

    dfSummary()

    Grid Style

    This style gives good results, and since v0.9, the graphs are shown as true images. Don’t forget to specify plain.ascii = FALSE (or set it as a global option with st_options(plain.ascii = FALSE)), or you won’t get good results.

    -
    -

    Data Frame Summary

    -

    tobacco
    -Dimensions: 1000 x 9
    -Duplicates: 2

    - --------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NoVariableStats / ValuesFreqs (% of Valid)GraphValidMissing
    1gender
    -[factor]
    1. F
    -2. M
    489 (50.0%)
    -489 (50.0%)
    978
    -(97.8%)
    22
    -(2.2%)
    2age
    -[numeric]
    Mean (sd) : 49.6 (18.3)
    -min < med < max:
    -18 < 50 < 80
    -IQR (CV) : 32 (0.4)
    63 distinct values975
    -(97.5%)
    25
    -(2.5%)
    3age.gr
    -[factor]
    1. 18-34
    -2. 35-50
    -3. 51-70
    -4. 71 +
    258 (26.5%)
    -241 (24.7%)
    -317 (32.5%)
    -159 (16.3%)
    975
    -(97.5%)
    25
    -(2.5%)
    4BMI
    -[numeric]
    Mean (sd) : 25.7 (4.5)
    -min < med < max:
    -8.8 < 25.6 < 39.4
    -IQR (CV) : 5.7 (0.2)
    974 distinct values974
    -(97.4%)
    26
    -(2.6%)
    5smoker
    -[factor]
    1. Yes
    -2. No
    298 (29.8%)
    -702 (70.2%)
    1000
    -(100%)
    0
    -(0%)
    6cigs.per.day
    -[numeric]
    Mean (sd) : 6.8 (11.9)
    -min < med < max:
    -0 < 0 < 40
    -IQR (CV) : 11 (1.8)
    37 distinct values965
    -(96.5%)
    35
    -(3.5%)
    7diseased
    -[factor]
    1. Yes
    -2. No
    224 (22.4%)
    -776 (77.6%)
    1000
    -(100%)
    0
    -(0%)
    8disease
    -[character]
    1. Hypertension
    -2. Cancer
    -3. Cholesterol
    -4. Heart
    -5. Pulmonary
    -6. Musculoskeletal
    -7. Diabetes
    -8. Hearing
    -9. Digestive
    -10. Hypotension
    -[ 3 others ]
    36 (16.2%)
    -34 (15.3%)
    -21 ( 9.5%)
    -20 ( 9.0%)
    -20 ( 9.0%)
    -19 ( 8.6%)
    -14 ( 6.3%)
    -14 ( 6.3%)
    -12 ( 5.4%)
    -11 ( 5.0%)
    -21 ( 9.5%)
    222
    -(22.2%)
    778
    -(77.8%)
    9samp.wgts
    -[numeric]
    Mean (sd) : 1 (0.1)
    -min < med < max:
    -0.9 < 1 < 1.1
    -IQR (CV) : 0.2 (0.1)
    0.86!: 267 (26.7%)
    -1.04!: 249 (24.9%)
    -1.05!: 324 (32.4%)
    -1.06!: 160 (16.0%)
    -! rounded

    -
    -
    1000
    -(100%)
    0
    -(0%)
    -
    +

    HTML Rendering

    @@ -1145,7 +961,6 @@

    Data Frame Summary

    Variable Stats / Values Freqs (% of Valid) - Graph Valid Missing @@ -1158,7 +973,6 @@

    Data Frame Summary

    1. F 2. M
    489(50.0%)
    489(50.0%)
    - 978 (97.8%) 22 @@ -1173,7 +987,6 @@

    Data Frame Summary

    18 < 50 < 80 IQR (CV) : 32 (0.4) 63 distinct values - 975 (97.5%) 25 @@ -1188,7 +1001,6 @@

    Data Frame Summary

    3. 51-70 4. 71 +
    258(26.5%)
    241(24.7%)
    317(32.5%)
    159(16.3%)
    - 975 (97.5%) 25 @@ -1203,7 +1015,6 @@

    Data Frame Summary

    8.8 < 25.6 < 39.4 IQR (CV) : 5.7 (0.2) 974 distinct values - 974 (97.4%) 26 @@ -1216,7 +1027,6 @@

    Data Frame Summary

    1. Yes 2. No
    298(29.8%)
    702(70.2%)
    - 1000 (100%) 0 @@ -1231,7 +1041,6 @@

    Data Frame Summary

    0 < 0 < 40 IQR (CV) : 11 (1.8) 37 distinct values - 965 (96.5%) 35 @@ -1244,7 +1053,6 @@

    Data Frame Summary

    1. Yes 2. No
    224(22.4%)
    776(77.6%)
    - 1000 (100%) 0 @@ -1266,7 +1074,6 @@

    Data Frame Summary

    10. Hypotension [ 3 others ]
    36(16.2%)
    34(15.3%)
    21(9.5%)
    20(9.0%)
    20(9.0%)
    19(8.6%)
    14(6.3%)
    14(6.3%)
    12(5.4%)
    11(5.0%)
    21(9.5%)
    - 222 (22.2%) 778 @@ -1281,9 +1088,6 @@

    Data Frame Summary

    0.9 < 1 < 1.1 IQR (CV) : 0.2 (0.1)
    0.86!:267(26.7%)
    1.04!:249(24.9%)
    1.05!:324(32.4%)
    1.06!:160(16.0%)
    ! rounded
    - - - 1000 (100%) 0 diff --git a/img/define_keywords.png b/img/define_keywords.png index 57f813cfa3c08e7dd8ec5960faa1e43e39744c38..cd25eff45be5a21ee262f00d15076372218abe49 100644 GIT binary patch literal 37944 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 + After closing the edit window, you will be offered to export the resulting "custom language" into a _.csv_ file that can be imported later on with diff --git a/vignettes/define_keywords.png b/vignettes/define_keywords.png index 57f813cfa3c08e7dd8ec5960faa1e43e39744c38..cd25eff45be5a21ee262f00d15076372218abe49 100644 GIT binary patch literal 37944 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