TRANSPOSEプロシジャのdelimiter=を使ってみる

SAS9.2からtransposeプロシジャのidステートメントに複数変数を指定できることは何回か紹介したのですが、それに付随してdelimiter=が追加されていることを紹介し忘れていました。

今、以下のデータセットがあったとします。

data Q1;
X='A';Y='1';Z='い';output;
X='B';Y='2';Z='ろ';output;
X='C';Y='3';Z='は';output;
run;







idステートメントにXとYの2変数を指定して以下のコードで転置すると

proc transpose data=Q1 out=A1;
 var Z;
 id X Y;
run;





となります。

変数名をみるとXとYの値がそのままくっついているのがわかります。
ただ、これって例えば変数によって入っている値の長さがばらばらで、内容が似ていたりすると
どこからどこまでが何個目の変数から生成された部分か判別できないことがあります。
delimiter=はその間に接続文字を入れることができます(変数の命名規則には注意)
つまり

proc transpose data=Q1 out=A2 delimiter=_;
 var Z;
 id X Y;
run;

とすると





となります


proc transpose data=Q1 out=A3 delimiter=and;
 var Z;
 id X Y;
run;

なら





です。

0 件のコメント:

コメントを投稿