2016-03-27 3 views
0

マクロを次のコードに追加して、毎月同じことを別々に行うことはできますか?たとえば、sourceg.trades_nov2008も作成する必要があります。ありがとうございました。SASのマクロを日付変数に追加して、毎月のデータセットを個別に作成する方法はありますか?

data sourceg.trades_dec2008(drop=dt); 
set sourceh.trades_: indsname=ds_name open=defer; 

dt = input(scan(ds_name, 2, "_"), date9.); 
day = day(dt); 
month = month(dt); 
year = year(dt); 

newtime=time/1000; 
format newtime time12.3; 
Hour=hour(newtime); 
Minute=minute(newtime); 
Second=second(newtime); 
run; 
+0

出力データセット名のほかに日付はどこに入りますか?どこでも使用されていない場合、結果は反復間で同じになります。 – Reeza

+0

trades_01jan2008 trades_02jan2008私は毎日のような名前のファイルを追加しようとしています。私がtrades_jan2008という月次ファイルに追加したコードです。しかし、私はこれを数年間のデータのために行う必要があり、私はマクロでそれをしようとしていました。ありがとうございました。 –

+0

データのステップで月が有効になるのはどこですか?特定の行を強調表示してください。 – Reeza

答えて

1

あなたはあなたのコードに%macro monthly(date)%mendを追加することによって、あなたのコードのうち、マクロを作成することができます。次に、手動呼び出しまたは呼び出し実行のいずれかを使用して繰り返し呼び出すことができます。

%macro monthly(date); 

data sourceg.trades_&date; 
*rest of sas code; 

run; 

%mend; 

%monthly(nov2008); 
%monthly(jan2008); 

あなたの現在の問題の説明から、私はこれを超えて何を示唆するべきか分かりません。ここではうまくカバーされているので、私はあなたに練習としてコール実行を残しておきます。また、特定の日付範囲がある場合は、代わりにループを追加することもできますが、それがあなたの状況かどうかわかりません。

+0

ありがとう、お勧めしたいことをお試しください。元の質問で私が与えたことは、私が持っているすべてのコードです。それは、データセットに日、月、年の変数を作成します(これらはデータセット内ではなく、trades_01jan2008などの名前でのみ作成されます)。次に、毎日のファイルを毎月のファイルに追加します。私は数ヶ月間これをやらなければならないので、毎月手動で行うことなく、追加できるマクロがあるかどうか疑問に思っていました(これも可能です)。再度、感謝します。 –

+0

setステートメントはコロンを使用しているため、接頭辞で始まるすべてのデータセットが追加されます。あなたはあなたが何を持っているのか、あなたが何を達成しようとしているのかを説明したいと思うかもデータセットの結合に関して、ここには多くの記事があります。さらなる例については、communities.sas.comを参照してください。 – Reeza

関連する問題