This package provides functions to get common statistic functions over lists of numbers.
If you need a function that is currently not included, please let me know by creating an Issue in Github or send me an email at [email protected]. Same thing for performance improvements, ideas, sponsoring and job offers.
Performance tests and comparision to other libraries can be found in the benchmark directory or at f0i.de/projects/elm-statistics.
elm install f0i/statistics
$ elm repl
> import List.Statistics as Stats
-- This is the test data for the following examples:
> data = [1, 1, 2, 2, 4, 8, 8, 9]
[1,1,2,2,4,8,8,9]
> data |> Stats.avg
Just 4.375 : Maybe Float
> data |> Stats.mean -- alias for avg
Just 4.375 : Maybe Float
> data |> Stats.occurrences
Dict.fromList [(1,2),(2,2),(4,1),(8,2),(9,1)]
: Dict.Dict number Int
> data |> Stats.minmax
Just (1,9) : Maybe ( number, number )
> data |> Stats.stdDeviation
Just 3.1991209730174317 : Maybe Float
-- Get the element 25% into the list (interpolated between closest values)
> data |> Stats.percentile 0.25
Just 1.75 : Maybe Float
-- Some functions have a separate implementation for list of Int
> data |> Stats.percentileInt 0.75
Just 8 : Maybe Int
>
The complete list of function definitions can be found in the package documentation
This package uses elm-test and elm-benchmark. There are make inside the makefile to run these tests whenever a file changes.
There are some other libraries which provide statistics functions:
- https://package.elm-lang.org/packages/gampleman/elm-visualization/latest/
- https://package.elm-lang.org/packages/BrianHicks/elm-trend/latest/
- https://package.elm-lang.org/packages/jxxcarlson/elm-stat/latest
See https://f0i.de/projects/elm-statistics for performance comparision.