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 件のコメント :
コメントを投稿