options mprint source; %macro date_fmt(from=, to=, fmt=, fmtnam=); %local i tcount; data _null_; format from to end yymmddn8.; from = &from; end = &to; tcount = 0; do while (from < end); to = intnx('MONTH', from, +11, 'END'); tcount = tcount + 1; /* マクロ変数を定義 */ value = put(from, &fmt); macvar = compress("FROM" || put(tcount, BEST.)); call symput(macvar, compress(value)); value = put(to, &fmt); macvar = compress("TO" || put(tcount, BEST.)); call symput(macvar, compress(value)); call symput("TCOUNT", compress(put(tcount, BEST.))); /* 次の年を設定 */ from = intnx('MONTH', from, +12); end; run; /* 書式を設定 */ proc format; value &fmtnam %do i=1 %to &tcount; "&&from&i" - "&&to&i" = "&&from&i - &&to&i" %end; ; run; %mend; %date_fmt(from='1-Apr-1990'd, to=today(), fmt=YYMMN6., fmtnam=$DATE6_F); %date_fmt(from='1-Apr-1990'd, to=today(), fmt=YYMMDDN8., fmtnam=$DATE8_F); data _null_; x = put(today(), yymmddn.); y = put(x, $DATE8_F.); z = put(x, $DATE6_F.); put _all_; run;
SASプログラムとログを解析するユーティリティを開発するための備忘録です。This is a memo to develop utility that analyzes the SAS log.
2012年5月28日月曜日
年代の書式定義
仕事用のメモです。4月始まりで年代を分けるための書式定義です。
登録:
コメントの投稿
(
Atom
)
0 件のコメント :
コメントを投稿