# Statistics¶

Q keywords replace many phrases used in its ancestor languages. For example, avg rather than {+/[x]% count x}. The keywords are often faster than the phrases and should be preferred.

## Maximum¶

q)x:5 3 7 2
q)max x
7


## Non-negative maximum¶

q)x:-1 -2 -3 -4 -5
q)max 0,x
0


## Maximum of x with weights y¶

q)x:1 2 3 4 5
q)y:5 4 3 2 1
q)x{x?max x}x*y
3


## Minimum¶

q)min 5 3 7 2
2


## Minimum of x with weights y¶

q)x:1 2 3 4 5
q)y:5 4 3 2 1
q)x{x?min x}x*y
1


## Average (mean)¶

q)avg 1 10 100
37f


## Average (mean) of x weighted by y¶

q)y:78 80 90 88 72
q)x:20 15 20 22 19
q)y wavg x
19.27451


## Median¶

q)med 61 20 51 12 31 51 29 35 17 89
33f


## Standard deviation¶

q)dev 44 77 48 24 28 36 17 49 90 91
25.48411


## Variance (dispersion)¶

q)var 44 77 48 24 28 36 17 49 90 91.0
649.44


## Normal deviates from interval (0,1)¶

q)\P 4
q)4?1.
0.7418 0.007865 0.4953 0.1869


## Running sum¶

q)sums x
1 21 321 4321


## Moving sum¶

q)y:3
q)x:1 2 3 5 7 11
q)y msum 1 2 3 5 7 11
1 3 6 10 15 23


## Moving maximum/minimum¶

q)y:3
q)x:1 2 3 5 7 11
q)y mmax x
1 2 3 5 7 11
q)y mmin x
1 1 1 2 3 5


## Moving maximum/minimum index¶

q)immax:{y x mmax iasc y:iasc y}
q)immin:{y x mmin iasc y:iasc y}
q)y:3
q)x:1 2 3 5 7 11
q)immax[y;x]
0 1 2 3 4 5
q)(y mmax x)~x immax[y;x]
1b
q)immin[y;x]
0 0 0 1 2 3
q)(y mmin x)~x immin[y;x]
1b