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 |