last update: 2004年11月15日

xtmvavg.sh

概要:移動平均を求める

書式:xtmvavg.sh [-k キー項目名] -s 並べ換える項目名 -f 集計項目名 -n 移動する日数 [-i 入力ファイル名] [-o出力ファイル名] [-T ワークディレクトリ名] [-V] [-h]

-V : スクリプト内部のコマンド完了メッセージを表示させる。
-h : ヘルプの表示

例1)2日の移動平均の算出

入力データ コマンド 出力データ
日付 金額
20041101
20041102
20041103
20041104
10
15
30
12
xtmvavg.sh -s 日付 -f 金額:移動平均 -n 2
日付 金額 移動平均
20041101
20041102
20041103
20041104
10
14
30
12
*
12
22
21

日付で並べ替え(-s)、2日ごと(-n)の金額項目(-f)の平均を求めている。最初の行は移動平均が求められないのでNULL値(*)となる。

例2)キー項目別に計算

入力データ コマンド 出力データ
企業 日付 金額
a
a
a
a
b
b
b
20041101
20041102
20041103
20041104
20041101
20041102
20041103
10
15
30
12
8
2
10
xtmvavg.sh -k 企業 -s 日付 -f 金額:移動平均 -n 2
企業 日付 金額 移動平均
a
a
a
a
b
b
b
20041101
20041102
20041103
20041104
20041101
20041102
20041103
10
14
30
12
8
2
10
*
12
22
21
*
5
6

企業別(-k)に移動平均を求めている。

例3)複数項目の計算もOK

入力データ コマンド 出力データ
日付 金額 数量
20041101
20041102
20041103
20041104
9
15
30
12
5
1
3
2
xtmvavg.sh -s 日付 -f 金額:金額平均,数量:数量平均 -n 3
日付 金額 数量 金額平均 数量平均
20041101
20041102
20041103
20041104
9
15
30
12
5
1
3
2
*
*
18
19
*
*
3
2

例4)逆順に計算すれば

入力データ コマンド 出力データ
日付 金額
20041101
20041102
20041103
20041104
10
15
30
12
xtmvavg.sh -s 日付%r -f 金額:移動平均 -n 2
日付 金額 移動平均
20041101
20041102
20041103
20041104
10
14
30
12
12
22
21
*

日付逆順(日付%r)で移動平均を求めると、NULL値の行が最後にあらわれる。

例5)パイプで連結して

#!/usr/bin/env bash

xtagg -k 日付 -f 金額 -c sum -i input.xt |
xtmvavg.sh -s 日付 -f 金額:金額移動平均 -n 10 |
xtcut -f 日付,金額移動平均 -o output.xt