文字列に関する記事はあまりなさそうだったので備忘録がてら。
個人メモで解説しないです。
やりたいこと:
* 文字型 ⇒ 複数行を1行にまとめる。
* 数値型 ⇒ 累積値を計算する。
サンプルデータ
data a; input a $ b; cards; AA 1 BB 2 CC 3 ; run;
コード
data b; set a end=end; length a2 $200; retain a2 "" b2 0; /* 初期値 */ a2 = catx(" ", a2, a); /* 文字列:空白スペースで連結 */ b2 = b2 + b; /* 数値型:累積 */ if end then do; /* 最終行をマクロ変数にする */ call symputx("txt1", a2); call symputx("txt2", b2); end; run;
output
%put "&txt1."; "AA BB CC" %put "&txt2."; "6"