miller/pkg
John Kerl 10939349d2
Add sliding-window mode to mlr stats1 via -w {n} (#1017) (#2186)
* Add sliding-window mode to stats1 via -w {n} (#1017)

This adds a generic sliding-window option to the stats1 verb, per the
feature request in #1017. With 'mlr stats1 ... -w {n}', statistics are
computed over a trailing window of up to n records -- per group when -g
is used -- and one output record is emitted per input record, with the
windowed statistics appended to it.

The implementation retains, per grouping key, copies of only the
relevant value fields from the last up-to-n records. On each input
record the group's accumulators are reset and re-fed from the window.
This is O(window size) per record, but is fully generic: it works
uniformly for every stats1 accumulator, including order-sensitive ones
(mode, antimode) and non-invertible ones (percentiles, distinct_count),
and composes with -g, --fr/--fx, and --gr/--gx.

Includes unit tests, regression cases (test/cases/verb-stats1/0020-0025),
and regenerated docs/man/help-text artifacts.

Addresses #1017.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* neaten

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 10:24:41 -04:00
..
auxents Lint round 5+6: staticcheck and errcheck to zero (#2130) 2026-07-03 11:42:08 -04:00
bifs Support %a %A %e %h %c %x %X in strptime (#1518) (#2179) 2026-07-08 16:42:03 -04:00
cli Right-align headers over all-numeric columns with --right-align-numeric (#380) (#2167) 2026-07-06 16:45:14 -04:00
climain Add DSL validate/dry-run: put/filter --explain (#2098 PR5) (#2131) 2026-07-03 18:12:23 -04:00
colorizer Strip dead code from pkg/ (#2121) 2026-07-01 19:32:13 -04:00
dkvpx DKVPX reader: honor --ifs and --ips instead of hard-coding comma and equals (#2172) 2026-07-06 17:37:07 -04:00
dsl Add sparkline DSL function and mlr sparkline verb (#166) (#2177) 2026-07-07 15:47:01 -04:00
entrypoint Add mlr mcp MCP server + agent playbook, with a --no-shell gate (#2098 PR7) (#2133) 2026-07-03 19:41:49 -04:00
go-csv Some fixes for staticcheck (#2006) 2026-03-03 09:27:03 -05:00
input DKVPX reader: honor --ifs and --ips instead of hard-coding comma and equals (#2172) 2026-07-06 17:37:07 -04:00
lib Add mlr mcp MCP server + agent playbook, with a --no-shell gate (#2098 PR7) (#2133) 2026-07-03 19:41:49 -04:00
mlrval Emit valid JSON numbers for floats like 004.56; document CSV quoting vs. type inference (#2151) 2026-07-05 20:19:32 -04:00
output DKVPX reader: honor --ifs and --ips instead of hard-coding comma and equals (#2172) 2026-07-06 17:37:07 -04:00
parsing Add a first-class bytes type to the DSL, with b"..." literals and base64/hex codecs (#2122) 2026-07-03 11:58:44 -04:00
pbnjay-strptime Support %a %A %e %h %c %x %X in strptime (#1518) (#2179) 2026-07-08 16:42:03 -04:00
platform Performance and style fixes (#1981) 2026-02-18 09:19:31 -05:00
runtime Lint round 5+6: staticcheck and errcheck to zero (#2130) 2026-07-03 11:42:08 -04:00
scan Strip dead code from pkg/ (#2121) 2026-07-01 19:32:13 -04:00
stream Lint round 5+6: staticcheck and errcheck to zero (#2130) 2026-07-03 11:42:08 -04:00
terminals More AI skill/MCP docs (#2140) 2026-07-04 14:45:29 -04:00
transformers Add sliding-window mode to mlr stats1 via -w {n} (#1017) (#2186) 2026-07-14 10:24:41 -04:00
types Strip dead code from pkg/ (#2121) 2026-07-01 19:32:13 -04:00
version Post-6.20.2 release: back to 6.20.2-dev 2026-07-04 15:44:14 -04:00
README.md Export library code in pkg/ (#1391) 2023-09-10 17:15:13 -04:00

Please see ../../README-dev.md for an overview; please see each subdirectory for details about it.