Quick actions

cmd+k|ctrl+k

Navigation

Languages

Summary statistics

Snippet info

Language

JavaScript

Visibility

public

Author

homam

Created

2020-11-08T12:15:18Z

Updated

2020-11-08T12:20:42Z



// @data: an array of numbers
const stats = data => data.reduce( 
    ({count, sum, mean, vari, min, max}, x) => {
      const k = 1 / (count + 1)
      const mean_ = mean + k * (x - mean)
      const ssr_ = (count - 1) * vari + k * count * (x - mean) * (x - mean)
      return {
          count: count + 1
          , sum: sum + x
          , mean: mean_
          , vari: ssr_ / Math.max(1, count)
          , min: isNaN(min) || x < min ? x : min
          , max: isNaN(max) || x > max ? x : max
      }
    }
    , {count: 0, sum: 0, mean: 0, vari: 0, min: NaN, max: NaN}
)


console.log(
    stats([3,4,2,2,4,3,2,2,-3,4,5])
)
INFO