From 36a2668f2282b8e697714bead67ff1a2e26572af Mon Sep 17 00:00:00 2001 From: John Kerl Date: Mon, 1 Aug 2022 09:57:32 -0400 Subject: [PATCH] ran `make dev` -- hadn't been run in a while --- docs/src/manpage.md | 78 ++++++++++++++++++++----- docs/src/manpage.txt | 78 ++++++++++++++++++++----- docs/src/record-heterogeneity.md | 4 +- docs/src/reference-dsl-time.md | 2 +- man/manpage.txt | 78 ++++++++++++++++++++----- man/mlr.1 | 98 +++++++++++++++++++++++++------- 6 files changed, 272 insertions(+), 66 deletions(-) diff --git a/docs/src/manpage.md b/docs/src/manpage.md index 04914adc9..db32ede54 100644 --- a/docs/src/manpage.md +++ b/docs/src/manpage.md @@ -50,7 +50,7 @@ DESCRIPTION insertion-ordered hash map. This encompasses a variety of data formats, including but not limited to the familiar CSV, TSV, and JSON. (Miller can handle positionally-indexed data as a special case.) This - manpage documents mlr 6.3.0. + manpage documents mlr 6.3.0-dev. EXAMPLES mlr --icsv --opprint cat example.csv @@ -192,11 +192,11 @@ VERB LIST altkv bar bootstrap cat check clean-whitespace count-distinct count count-similar cut decimate fill-down fill-empty filter flatten format-values fraction gap grep group-by group-like having-fields head histogram json-parse - json-stringify join label latin1-to-utf8 utf8-to-latin1 least-frequent - merge-fields most-frequent nest nothing put regularize remove-empty-columns - rename reorder repeat reshape sample sec2gmtdate sec2gmt seqgen shuffle - skip-trivial-records sort sort-within-records split stats1 stats2 step tac - tail tee template top unflatten uniq unsparsify + json-stringify join label latin1-to-utf8 least-frequent merge-fields + most-frequent nest nothing put regularize remove-empty-columns rename reorder + repeat reshape sample sec2gmtdate sec2gmt seqgen shuffle skip-trivial-records + sort sort-within-records split stats1 stats2 step summary tac tail tee + template top utf8-to-latin1 unflatten uniq unsparsify FUNCTION LIST abs acos acosh any append apply arrayify asin asinh asserting_absent @@ -1327,13 +1327,6 @@ VERBS Options: -h|--help Show this message. - utf8-to-latin1 - Usage: mlr utf8-to-latin1, with no options. - Recursively converts record strings from Latin-1 to UTF-8. - For field-level control, please see the utf8_to_latin1 DSL function. - Options: - -h|--help Show this message. - least-frequent Usage: mlr least-frequent [options] Shows the least frequently occurring distinct values for specified field names. @@ -1352,6 +1345,8 @@ VERBS Options: -a {sum,count,...} Names of accumulators. One or more of: count Count instances of fields + null_count Count number of empty-string/JSON-null instances per field + distinct_count Count number of distinct values per field mode Find most-frequently-occurring values for fields; first-found wins tie antimode Find least-frequently-occurring values for fields; first-found wins tie sum Compute sums of specified fields @@ -1363,6 +1358,8 @@ VERBS kurtosis Compute sample kurtosis of specified fields min Compute minimum values of specified fields max Compute maximum values of specified fields + minlen Compute minimum string-lengths of specified fields + maxlen Compute maximum string-lengths of specified fields -f {a,b,c} Value-field names on which to compute statistics. Requires -o. -r {a,b,c} Regular expressions for value-field names on which to compute statistics. Requires -o. @@ -1818,6 +1815,8 @@ VERBS median This is the same as p50 p10 p25.2 p50 p98 p100 etc. count Count instances of fields + null_count Count number of empty-string/JSON-null instances per field + distinct_count Count number of distinct values per field mode Find most-frequently-occurring values for fields; first-found wins tie antimode Find least-frequently-occurring values for fields; first-found wins tie sum Compute sums of specified fields @@ -1829,6 +1828,8 @@ VERBS kurtosis Compute sample kurtosis of specified fields min Compute minimum values of specified fields max Compute maximum values of specified fields + minlen Compute minimum string-lengths of specified fields + maxlen Compute maximum string-lengths of specified fields -f {a,b,c} Value-field names on which to compute statistics --fr {regex} Regex for value-field names on which to compute statistics @@ -1939,6 +1940,48 @@ VERBS https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average for more information on EWMA. + summary + Usage: mlr summary [options] + Show summary statistics about the input data. + + All summarizers: + field_type string, int, etc. -- if a column has mixed types, all encountered types are printed + count +1 for every instance of the field across all records in the input record stream + null_count count of field values either empty string or JSON null + distinct_count count of distinct values for the field + mode most-frequently-occurring value for the field + sum sum of field values + mean mean of the field values + stddev standard deviation of the field values + var variance of the field values + skewness skewness of the field values + minlen length of shortest string representation for the field + maxlen length of longest string representation for the field + min minimum field value + p25 first-quartile field value + median median field value + p75 third-quartile field value + max maximum field value + iqr interquartile range: p75 - p25 + lof lower outer fence: p25 - 3.0 * iqr + lif lower inner fence: p25 - 1.5 * iqr + uif upper inner fence: p75 + 1.5 * iqr + uof upper outer fence: p75 + 3.0 * iqr + + Default summarizers: + field_type count mean min median max null_count distinct_count + + Notes: + * min, p25, median, p75, and max work for strings as well as numbers + * Distinct-counts are computed on string representations -- so 4.1 and 4.10 are counted as distinct here. + * If the mode is not unique in the input data, the first-encountered value is reported as the mode. + + Options: + -a {mean,sum,etc.} Use only the specified summarizers. + -x {mean,sum,etc.} Use all summarizers, except the specified ones. + --all Use all available summarizers. + -h|--help Show this message. + tac Usage: mlr tac [options] Prints records in reverse order from the order in which they were encountered. @@ -1998,6 +2041,13 @@ VERBS from -f, fields from -g, and the top-index field are emitted. For more information please see https://miller.readthedocs.io/en/latest/reference-verbs#top + utf8-to-latin1 + Usage: mlr utf8-to-latin1, with no options. + Recursively converts record strings from Latin-1 to UTF-8. + For field-level control, please see the utf8_to_latin1 DSL function. + Options: + -h|--help Show this message. + unflatten Usage: mlr unflatten [options] Reverses flatten. Example: field with name 'a.b.c' and value 4 @@ -3222,5 +3272,5 @@ SEE ALSO - 2022-07-07 MILLER(1) + 2022-08-01 MILLER(1) diff --git a/docs/src/manpage.txt b/docs/src/manpage.txt index 64433d9b6..f3899f091 100644 --- a/docs/src/manpage.txt +++ b/docs/src/manpage.txt @@ -29,7 +29,7 @@ DESCRIPTION insertion-ordered hash map. This encompasses a variety of data formats, including but not limited to the familiar CSV, TSV, and JSON. (Miller can handle positionally-indexed data as a special case.) This - manpage documents mlr 6.3.0. + manpage documents mlr 6.3.0-dev. EXAMPLES mlr --icsv --opprint cat example.csv @@ -171,11 +171,11 @@ VERB LIST altkv bar bootstrap cat check clean-whitespace count-distinct count count-similar cut decimate fill-down fill-empty filter flatten format-values fraction gap grep group-by group-like having-fields head histogram json-parse - json-stringify join label latin1-to-utf8 utf8-to-latin1 least-frequent - merge-fields most-frequent nest nothing put regularize remove-empty-columns - rename reorder repeat reshape sample sec2gmtdate sec2gmt seqgen shuffle - skip-trivial-records sort sort-within-records split stats1 stats2 step tac - tail tee template top unflatten uniq unsparsify + json-stringify join label latin1-to-utf8 least-frequent merge-fields + most-frequent nest nothing put regularize remove-empty-columns rename reorder + repeat reshape sample sec2gmtdate sec2gmt seqgen shuffle skip-trivial-records + sort sort-within-records split stats1 stats2 step summary tac tail tee + template top utf8-to-latin1 unflatten uniq unsparsify FUNCTION LIST abs acos acosh any append apply arrayify asin asinh asserting_absent @@ -1306,13 +1306,6 @@ VERBS Options: -h|--help Show this message. - utf8-to-latin1 - Usage: mlr utf8-to-latin1, with no options. - Recursively converts record strings from Latin-1 to UTF-8. - For field-level control, please see the utf8_to_latin1 DSL function. - Options: - -h|--help Show this message. - least-frequent Usage: mlr least-frequent [options] Shows the least frequently occurring distinct values for specified field names. @@ -1331,6 +1324,8 @@ VERBS Options: -a {sum,count,...} Names of accumulators. One or more of: count Count instances of fields + null_count Count number of empty-string/JSON-null instances per field + distinct_count Count number of distinct values per field mode Find most-frequently-occurring values for fields; first-found wins tie antimode Find least-frequently-occurring values for fields; first-found wins tie sum Compute sums of specified fields @@ -1342,6 +1337,8 @@ VERBS kurtosis Compute sample kurtosis of specified fields min Compute minimum values of specified fields max Compute maximum values of specified fields + minlen Compute minimum string-lengths of specified fields + maxlen Compute maximum string-lengths of specified fields -f {a,b,c} Value-field names on which to compute statistics. Requires -o. -r {a,b,c} Regular expressions for value-field names on which to compute statistics. Requires -o. @@ -1797,6 +1794,8 @@ VERBS median This is the same as p50 p10 p25.2 p50 p98 p100 etc. count Count instances of fields + null_count Count number of empty-string/JSON-null instances per field + distinct_count Count number of distinct values per field mode Find most-frequently-occurring values for fields; first-found wins tie antimode Find least-frequently-occurring values for fields; first-found wins tie sum Compute sums of specified fields @@ -1808,6 +1807,8 @@ VERBS kurtosis Compute sample kurtosis of specified fields min Compute minimum values of specified fields max Compute maximum values of specified fields + minlen Compute minimum string-lengths of specified fields + maxlen Compute maximum string-lengths of specified fields -f {a,b,c} Value-field names on which to compute statistics --fr {regex} Regex for value-field names on which to compute statistics @@ -1918,6 +1919,48 @@ VERBS https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average for more information on EWMA. + summary + Usage: mlr summary [options] + Show summary statistics about the input data. + + All summarizers: + field_type string, int, etc. -- if a column has mixed types, all encountered types are printed + count +1 for every instance of the field across all records in the input record stream + null_count count of field values either empty string or JSON null + distinct_count count of distinct values for the field + mode most-frequently-occurring value for the field + sum sum of field values + mean mean of the field values + stddev standard deviation of the field values + var variance of the field values + skewness skewness of the field values + minlen length of shortest string representation for the field + maxlen length of longest string representation for the field + min minimum field value + p25 first-quartile field value + median median field value + p75 third-quartile field value + max maximum field value + iqr interquartile range: p75 - p25 + lof lower outer fence: p25 - 3.0 * iqr + lif lower inner fence: p25 - 1.5 * iqr + uif upper inner fence: p75 + 1.5 * iqr + uof upper outer fence: p75 + 3.0 * iqr + + Default summarizers: + field_type count mean min median max null_count distinct_count + + Notes: + * min, p25, median, p75, and max work for strings as well as numbers + * Distinct-counts are computed on string representations -- so 4.1 and 4.10 are counted as distinct here. + * If the mode is not unique in the input data, the first-encountered value is reported as the mode. + + Options: + -a {mean,sum,etc.} Use only the specified summarizers. + -x {mean,sum,etc.} Use all summarizers, except the specified ones. + --all Use all available summarizers. + -h|--help Show this message. + tac Usage: mlr tac [options] Prints records in reverse order from the order in which they were encountered. @@ -1977,6 +2020,13 @@ VERBS from -f, fields from -g, and the top-index field are emitted. For more information please see https://miller.readthedocs.io/en/latest/reference-verbs#top + utf8-to-latin1 + Usage: mlr utf8-to-latin1, with no options. + Recursively converts record strings from Latin-1 to UTF-8. + For field-level control, please see the utf8_to_latin1 DSL function. + Options: + -h|--help Show this message. + unflatten Usage: mlr unflatten [options] Reverses flatten. Example: field with name 'a.b.c' and value 4 @@ -3201,4 +3251,4 @@ SEE ALSO - 2022-07-07 MILLER(1) + 2022-08-01 MILLER(1) diff --git a/docs/src/record-heterogeneity.md b/docs/src/record-heterogeneity.md index a486bac2c..ba80fc3c0 100644 --- a/docs/src/record-heterogeneity.md +++ b/docs/src/record-heterogeneity.md @@ -127,8 +127,8 @@ If you `mlr --csv cat` this, you'll get an error message: mlr --csv cat data/het/ragged.csv
-mlr :  mlr: CSV header/data length mismatch 3 != 2 at filename data/het/ragged.csv row 3.
-
+mlr: mlr: CSV header/data length mismatch 3 != 2 at filename data/het/ragged.csv row 3.
+.
 
There are two kinds of raggedness here. Since CSVs form records by zipping the diff --git a/docs/src/reference-dsl-time.md b/docs/src/reference-dsl-time.md index 4271deff5..cd6210ec5 100644 --- a/docs/src/reference-dsl-time.md +++ b/docs/src/reference-dsl-time.md @@ -136,7 +136,7 @@ Regardless, if you specify an invalid timezone, you'll be clearly notified: mlr --from example.csv --tz This/Is/A/Typo cat
-mlr: unknown time zone This/Is/A/Typo
+mlr :  unknown time zone This/Is/A/Typo
 
diff --git a/man/manpage.txt b/man/manpage.txt
index 64433d9b6..f3899f091 100644
--- a/man/manpage.txt
+++ b/man/manpage.txt
@@ -29,7 +29,7 @@ DESCRIPTION
        insertion-ordered hash map.  This encompasses a variety of data
        formats, including but not limited to the familiar CSV, TSV, and JSON.
        (Miller can handle positionally-indexed data as a special case.) This
-       manpage documents mlr 6.3.0.
+       manpage documents mlr 6.3.0-dev.
 
 EXAMPLES
        mlr --icsv --opprint cat example.csv
@@ -171,11 +171,11 @@ VERB LIST
        altkv bar bootstrap cat check clean-whitespace count-distinct count
        count-similar cut decimate fill-down fill-empty filter flatten format-values
        fraction gap grep group-by group-like having-fields head histogram json-parse
-       json-stringify join label latin1-to-utf8 utf8-to-latin1 least-frequent
-       merge-fields most-frequent nest nothing put regularize remove-empty-columns
-       rename reorder repeat reshape sample sec2gmtdate sec2gmt seqgen shuffle
-       skip-trivial-records sort sort-within-records split stats1 stats2 step tac
-       tail tee template top unflatten uniq unsparsify
+       json-stringify join label latin1-to-utf8 least-frequent merge-fields
+       most-frequent nest nothing put regularize remove-empty-columns rename reorder
+       repeat reshape sample sec2gmtdate sec2gmt seqgen shuffle skip-trivial-records
+       sort sort-within-records split stats1 stats2 step summary tac tail tee
+       template top utf8-to-latin1 unflatten uniq unsparsify
 
 FUNCTION LIST
        abs acos acosh any append apply arrayify asin asinh asserting_absent
@@ -1306,13 +1306,6 @@ VERBS
        Options:
        -h|--help Show this message.
 
-   utf8-to-latin1
-       Usage: mlr utf8-to-latin1, with no options.
-       Recursively converts record strings from Latin-1 to UTF-8.
-       For field-level control, please see the utf8_to_latin1 DSL function.
-       Options:
-       -h|--help Show this message.
-
    least-frequent
        Usage: mlr least-frequent [options]
        Shows the least frequently occurring distinct values for specified field names.
@@ -1331,6 +1324,8 @@ VERBS
        Options:
        -a {sum,count,...}  Names of accumulators. One or more of:
          count    Count instances of fields
+         null_count Count number of empty-string/JSON-null instances per field
+         distinct_count Count number of distinct values per field
          mode     Find most-frequently-occurring values for fields; first-found wins tie
          antimode Find least-frequently-occurring values for fields; first-found wins tie
          sum      Compute sums of specified fields
@@ -1342,6 +1337,8 @@ VERBS
          kurtosis Compute sample kurtosis of specified fields
          min      Compute minimum values of specified fields
          max      Compute maximum values of specified fields
+         minlen   Compute minimum string-lengths of specified fields
+         maxlen   Compute maximum string-lengths of specified fields
        -f {a,b,c}  Value-field names on which to compute statistics. Requires -o.
        -r {a,b,c}  Regular expressions for value-field names on which to compute
                    statistics. Requires -o.
@@ -1797,6 +1794,8 @@ VERBS
          median   This is the same as p50
          p10 p25.2 p50 p98 p100 etc.
          count    Count instances of fields
+         null_count Count number of empty-string/JSON-null instances per field
+         distinct_count Count number of distinct values per field
          mode     Find most-frequently-occurring values for fields; first-found wins tie
          antimode Find least-frequently-occurring values for fields; first-found wins tie
          sum      Compute sums of specified fields
@@ -1808,6 +1807,8 @@ VERBS
          kurtosis Compute sample kurtosis of specified fields
          min      Compute minimum values of specified fields
          max      Compute maximum values of specified fields
+         minlen   Compute minimum string-lengths of specified fields
+         maxlen   Compute maximum string-lengths of specified fields
 
        -f {a,b,c}     Value-field names on which to compute statistics
        --fr {regex}   Regex for value-field names on which to compute statistics
@@ -1918,6 +1919,48 @@ VERBS
        https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average
        for more information on EWMA.
 
+   summary
+       Usage: mlr summary [options]
+       Show summary statistics about the input data.
+
+       All summarizers:
+         field_type      string, int, etc. -- if a column has mixed types, all encountered types are printed
+         count           +1 for every instance of the field across all records in the input record stream
+         null_count      count of field values either empty string or JSON null
+         distinct_count  count of distinct values for the field
+         mode            most-frequently-occurring value for the field
+         sum             sum of field values
+         mean            mean of the field values
+         stddev          standard deviation of the field values
+         var             variance of the field values
+         skewness        skewness of the field values
+         minlen          length of shortest string representation for the field
+         maxlen          length of longest string representation for the field
+         min             minimum field value
+         p25             first-quartile field value
+         median          median field value
+         p75             third-quartile field value
+         max             maximum field value
+         iqr             interquartile range: p75 - p25
+         lof             lower outer fence: p25 - 3.0 * iqr
+         lif             lower inner fence: p25 - 1.5 * iqr
+         uif             upper inner fence: p75 + 1.5 * iqr
+         uof             upper outer fence: p75 + 3.0 * iqr
+
+       Default summarizers:
+         field_type count mean min median max null_count distinct_count
+
+       Notes:
+       * min, p25, median, p75, and max work for strings as well as numbers
+       * Distinct-counts are computed on string representations -- so 4.1 and 4.10 are counted as distinct here.
+       * If the mode is not unique in the input data, the first-encountered value is reported as the mode.
+
+       Options:
+       -a {mean,sum,etc.} Use only the specified summarizers.
+       -x {mean,sum,etc.} Use all summarizers, except the specified ones.
+       --all              Use all available summarizers.
+       -h|--help Show this message.
+
    tac
        Usage: mlr tac [options]
        Prints records in reverse order from the order in which they were encountered.
@@ -1977,6 +2020,13 @@ VERBS
        from -f, fields from -g, and the top-index field are emitted. For more information
        please see https://miller.readthedocs.io/en/latest/reference-verbs#top
 
+   utf8-to-latin1
+       Usage: mlr utf8-to-latin1, with no options.
+       Recursively converts record strings from Latin-1 to UTF-8.
+       For field-level control, please see the utf8_to_latin1 DSL function.
+       Options:
+       -h|--help Show this message.
+
    unflatten
        Usage: mlr unflatten [options]
        Reverses flatten. Example: field with name 'a.b.c' and value 4
@@ -3201,4 +3251,4 @@ SEE ALSO
 
 
 
-                                  2022-07-07                         MILLER(1)
+                                  2022-08-01                         MILLER(1)
diff --git a/man/mlr.1 b/man/mlr.1
index 86047be40..fcfb90a3e 100644
--- a/man/mlr.1
+++ b/man/mlr.1
@@ -2,12 +2,12 @@
 .\"     Title: mlr
 .\"    Author: [see the "AUTHOR" section]
 .\" Generator: ./mkman.rb
-.\"      Date: 2022-07-07
+.\"      Date: 2022-08-01
 .\"    Manual: \ \&
 .\"    Source: \ \&
 .\"  Language: English
 .\"
-.TH "MILLER" "1" "2022-07-07" "\ \&" "\ \&"
+.TH "MILLER" "1" "2022-08-01" "\ \&" "\ \&"
 .\" -----------------------------------------------------------------
 .\" * Portability definitions
 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -47,7 +47,7 @@ on integer-indexed fields: if the natural data structure for the latter is the
 array, then Miller's natural data structure is the insertion-ordered hash map.
 This encompasses a variety of data formats, including but not limited to the
 familiar CSV, TSV, and JSON.  (Miller can handle positionally-indexed data as
-a special case.) This manpage documents mlr 6.3.0.
+a special case.) This manpage documents mlr 6.3.0-dev.
 .SH "EXAMPLES"
 .sp
 
@@ -212,11 +212,11 @@ for all things with "map" in their names.
 altkv bar bootstrap cat check clean-whitespace count-distinct count
 count-similar cut decimate fill-down fill-empty filter flatten format-values
 fraction gap grep group-by group-like having-fields head histogram json-parse
-json-stringify join label latin1-to-utf8 utf8-to-latin1 least-frequent
-merge-fields most-frequent nest nothing put regularize remove-empty-columns
-rename reorder repeat reshape sample sec2gmtdate sec2gmt seqgen shuffle
-skip-trivial-records sort sort-within-records split stats1 stats2 step tac
-tail tee template top unflatten uniq unsparsify
+json-stringify join label latin1-to-utf8 least-frequent merge-fields
+most-frequent nest nothing put regularize remove-empty-columns rename reorder
+repeat reshape sample sec2gmtdate sec2gmt seqgen shuffle skip-trivial-records
+sort sort-within-records split stats1 stats2 step summary tac tail tee
+template top utf8-to-latin1 unflatten uniq unsparsify
 .fi
 .if n \{\
 .RE
@@ -1645,19 +1645,6 @@ Options:
 .fi
 .if n \{\
 .RE
-.SS "utf8-to-latin1"
-.if n \{\
-.RS 0
-.\}
-.nf
-Usage: mlr utf8-to-latin1, with no options.
-Recursively converts record strings from Latin-1 to UTF-8.
-For field-level control, please see the utf8_to_latin1 DSL function.
-Options:
--h|--help Show this message.
-.fi
-.if n \{\
-.RE
 .SS "least-frequent"
 .if n \{\
 .RS 0
@@ -1686,6 +1673,8 @@ specified fields.
 Options:
 -a {sum,count,...}  Names of accumulators. One or more of:
   count    Count instances of fields
+  null_count Count number of empty-string/JSON-null instances per field
+  distinct_count Count number of distinct values per field
   mode     Find most-frequently-occurring values for fields; first-found wins tie
   antimode Find least-frequently-occurring values for fields; first-found wins tie
   sum      Compute sums of specified fields
@@ -1697,6 +1686,8 @@ Options:
   kurtosis Compute sample kurtosis of specified fields
   min      Compute minimum values of specified fields
   max      Compute maximum values of specified fields
+  minlen   Compute minimum string-lengths of specified fields
+  maxlen   Compute maximum string-lengths of specified fields
 -f {a,b,c}  Value-field names on which to compute statistics. Requires -o.
 -r {a,b,c}  Regular expressions for value-field names on which to compute
             statistics. Requires -o.
@@ -2272,6 +2263,8 @@ Options:
   median   This is the same as p50
   p10 p25.2 p50 p98 p100 etc.
   count    Count instances of fields
+  null_count Count number of empty-string/JSON-null instances per field
+  distinct_count Count number of distinct values per field
   mode     Find most-frequently-occurring values for fields; first-found wins tie
   antimode Find least-frequently-occurring values for fields; first-found wins tie
   sum      Compute sums of specified fields
@@ -2283,6 +2276,8 @@ Options:
   kurtosis Compute sample kurtosis of specified fields
   min      Compute minimum values of specified fields
   max      Compute maximum values of specified fields
+  minlen   Compute minimum string-lengths of specified fields
+  maxlen   Compute maximum string-lengths of specified fields
 
 -f {a,b,c}     Value-field names on which to compute statistics
 --fr {regex}   Regex for value-field names on which to compute statistics
@@ -2407,6 +2402,54 @@ for more information on EWMA.
 .fi
 .if n \{\
 .RE
+.SS "summary"
+.if n \{\
+.RS 0
+.\}
+.nf
+Usage: mlr summary [options]
+Show summary statistics about the input data.
+
+All summarizers:
+  field_type      string, int, etc. -- if a column has mixed types, all encountered types are printed
+  count           +1 for every instance of the field across all records in the input record stream
+  null_count      count of field values either empty string or JSON null
+  distinct_count  count of distinct values for the field
+  mode            most-frequently-occurring value for the field
+  sum             sum of field values
+  mean            mean of the field values
+  stddev          standard deviation of the field values
+  var             variance of the field values
+  skewness        skewness of the field values
+  minlen          length of shortest string representation for the field
+  maxlen          length of longest string representation for the field
+  min             minimum field value
+  p25             first-quartile field value
+  median          median field value
+  p75             third-quartile field value
+  max             maximum field value
+  iqr             interquartile range: p75 - p25
+  lof             lower outer fence: p25 - 3.0 * iqr
+  lif             lower inner fence: p25 - 1.5 * iqr
+  uif             upper inner fence: p75 + 1.5 * iqr
+  uof             upper outer fence: p75 + 3.0 * iqr
+
+Default summarizers:
+  field_type count mean min median max null_count distinct_count
+
+Notes:
+* min, p25, median, p75, and max work for strings as well as numbers
+* Distinct-counts are computed on string representations -- so 4.1 and 4.10 are counted as distinct here.
+* If the mode is not unique in the input data, the first-encountered value is reported as the mode.
+
+Options:
+-a {mean,sum,etc.} Use only the specified summarizers.
+-x {mean,sum,etc.} Use all summarizers, except the specified ones.
+--all              Use all available summarizers.
+-h|--help Show this message.
+.fi
+.if n \{\
+.RE
 .SS "tac"
 .if n \{\
 .RS 0
@@ -2496,6 +2539,19 @@ please see https://miller.readthedocs.io/en/latest/reference-verbs#top
 .fi
 .if n \{\
 .RE
+.SS "utf8-to-latin1"
+.if n \{\
+.RS 0
+.\}
+.nf
+Usage: mlr utf8-to-latin1, with no options.
+Recursively converts record strings from Latin-1 to UTF-8.
+For field-level control, please see the utf8_to_latin1 DSL function.
+Options:
+-h|--help Show this message.
+.fi
+.if n \{\
+.RE
 .SS "unflatten"
 .if n \{\
 .RS 0