過去12ヶ月間の多数の統計データを計算するつまり、私は、約10万行に及ぶ出荷日という名前の列を持ち、その月を指定する値1〜12と出荷数という別の列を繰り返します。その日の出荷数は次のようになります。SASマクロの値に基づいて再インデックスされた月の値の列を作成する12ヶ月前
data shipments
input Shipment_Month Shipment Count;
datalines;
1 2
2 3
3 5
4 6
5 7
6 9
7 10
8 11
9 12
10 11
11 8
12 7
1 .
2 .
3 .
4 .
. .
. .
. .
. .
. .
コードを実行するたびに先月の終わりと12ヶ月前の12ヶ月の月の初めを与える更新の2つのマクロ変数。私がしたいのは、Shipment_reindexという名前の列を作成し、Shipment_Month列から1から12のインデックスを付け直して、12ヶ月前の月の値を返します(& Back_12_Months)= 5 rei-indexedすなわち、5 = 1、6 = 2,7 = 3,8 = 4,9 = 5,10 = 6,11 = 7,12 = 8,1 = 9,2 = 10,3 = 11、 4 = 12となる。
Shipment_Month Shipment_Count Shipment_reindex
1 2 9
2 3 10
3 5 11
4 6 12
5 7 1
6 9 2
7 10 3
8 11 4
9 12 5
10 11 6
11 8 7
12 7 8
1 . 9
2 . 10
3 . 11
4 . 12
5 . 1
. .
私はそれを行うには、ハードな方法を考えることができます。
if Shipment_Month=5 then shipment_Reindex=1;
else if Shipment=6 then Shipment_Reindex=2
....
しかし、私は私の代わりにコードが絶えず変更することで実行時に自動的に列を更新するために私がしたいです値。私は配列を使いこなしていましたが、どこも速くなりません。
私を助けてください!
おかげで、 - キース
申し訳ありませんが、ティム、私の悪い...私はこれに誤ってmysqlタグを付けました。私はSAS 9.4を使用しています。ありがとう、結構です!!! – Keith