Calculate the moving average. The three different ways to calculate moving average include simple moving average (), weighted moving average (
), and exponential moving average (
).
The value of time is expressed by
, and period is represented by
as defined in several formulas of moving average (3.1,3.2,3.3).
![]() |
(3.1) |
![]() |
(3.2) |
![]() |
(3.3) |
mmvavg [s=] [k=] f= [t=] [-exp|-w] [alpha=] [skip=] [i=] [o=] [-nfn] [-nfno] [-x] [-q] [precision=] [--help] [--version]
s= After the specified field is sorted (multiple fields can be specified), moving average is calculated. s= parameter is required when -q option is not specified. k= Aggregate records using the specified field name(s) (multiple fields can as unit of calculation. f= Compute the moving averages of the field(s) (multiple fields can be specified). t= Interval numbers of integers greater than 1. When -exp is used with alpha=, the t= parameter do not need to be defined. -w Linear weighted moving average. -exp Exponential smoothing moving average. alpha= Use a real number as smoothing coefficient when -exp is specified. The default value of alpha is alpha=2/(value of = t+1)。 skip= Specify the number of rows to hide from the top in the output. Default value: skip=(value of t= -1), skip=0 when -exp is specified.
The first row is not printed as there is less than the number of required intervals for computation.
$ more dat1.csv id,value 1,5 2,1 3,3 4,4 5,4 6,6 7,1 8,4 9,7 $ mmvavg s=id f=value t=2 i=dat1.csv o=rsl1.csv #END# kgmvavg f=value i=dat1.csv o=rsl1.csv s=id t=2 $ more rsl1.csv id%0,value 2,3 3,2 4,3.5 5,4 6,5 7,3.5 8,2.5 9,5.5
The first row is not printed as there is less than the number of required intervals for computation.
$ mmvavg s=id f=value t=2 -w i=dat1.csv o=rsl2.csv #END# kgmvavg -w f=value i=dat1.csv o=rsl2.csv s=id t=2 $ more rsl2.csv id%0,value 2,2.333333333 3,2.333333333 4,3.666666667 5,4 6,5.333333333 7,2.666666667 8,3 9,6
Exponential smoothing moving average (-exp) includes the first row in the output.
$ mmvavg s=id f=value t=2 -exp i=dat1.csv o=rsl3.csv #END# kgmvavg -exp f=value i=dat1.csv o=rsl3.csv s=id t=2 $ more rsl3.csv id%0,value 1,5 2,2.333333333 3,2.777777778 4,3.592592593 5,3.864197531 6,5.288065844 7,2.429355281 8,3.47645176 9,5.82548392
$ more dat2.csv id,key,value 1,a,5 2,a,1 3,a,3 4,a,4 5,a,4 6,b,6 7,b,1 8,b,4 9,b,7 $ mmvavg s=key,id k=key f=value t=2 i=dat2.csv o=rsl4.csv #END# kgmvavg f=value i=dat2.csv k=key o=rsl4.csv s=key,id t=2 $ more rsl4.csv id,key,value 2,a,3 3,a,2 4,a,3.5 5,a,4 7,b,3.5 8,b,2.5 9,b,5.5
$ more dat3.csv key,value a,1 a,2 a,3 a,4 a,5 b,6 b,1 b,4 b,7 $ mmvavg -q k=key f=value t=2 skip=0 i=dat3.csv o=rsl5.csv #END# kgmvavg -q f=value i=dat3.csv k=key o=rsl5.csv skip=0 t=2 $ more rsl5.csv key,value a,1 a,1.5 a,2.5 a,3.5 a,4.5 b,6 b,3.5 b,2.5 b,5.5
mmvstats : Specify the average as well as various types of statistics.
mmvsim : Compute bivariate statistics.
mwindow : Computes statistics on sliding window data which cannot be computed using mmvstats.