Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/f0i/statistics

Statistic functions for elm
https://github.com/f0i/statistics

elm libraries statistics

Last synced: about 1 month ago
JSON representation

Statistic functions for elm

Awesome Lists containing this project

README

        

# Fast Statistic functions for Lists of Float and Int

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](https://github.com/f0i/statistics/issues/new)
or send me an email at [[email protected]](mailto:[email protected]?subject=github:f0i/statistics).
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](https://f0i.de/projects/elm-statistics).

## Install

```bash
elm install f0i/statistics
```

## Examples

```elm
$ 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](https://package.elm-lang.org/packages/f0i/statistics/latest/List-Statistics)

## Development

This package uses elm-test and elm-benchmark.
There are make inside the [makefile](makefile) to run these tests whenever a file changes.

## Alternatives

There are some other libraries which provide statistics functions:

*
*
*

See for performance comparision.