縦持ちのデータを横持ちにかえるのがtransposeプロシジャなら、
逆は何プロシジャですかと直接ご質問をいただきました。
有難うございます。了解をいただいたので、せっかくなのでネタにさせていただきます。
縦から横への構造変化を例として、転置という言葉が用いられることが多いため
つい誤解してしまうところなのですが、転置は両方の意味を持ちます。
つまり、横から縦、つまり変数からオブザベーションへの変化もtransposeプロシジャのお仕事です。
今、下記のデータがあるとします。
2人の検査データを1週おきに3週間とって、横に値を持たせた構造です。
data Q1;
ID='TEST-001';WEEK_1=5;WEEK_2=6;WEEK_3=7;output;
ID='TEST-002';WEEK_1=3;WEEK_2=9;WEEK_3=8;output;
run;
こいつを縦にしたければ
proc sort data=Q1;
by ID;
run;
proc transpose data=Q1 out=A1;
var WEEK_:;
by ID;
run;
で
となり、まあ体裁を整えるなら
data A2;
set A1;
WEEK=input(scan(_NAME_,2,'_'),best.);
VAL=COL1;
drop _NAME_ COL1;
run;
とでもして、以下の形です。
ちなみに、これを一番最初の横持ちに戻したければ
proc sort data=A2;
by ID;
run;
proc transpose data=A2 out=Q1(drop=_NAME_) prefix=WEEK_;
var VAL;
id WEEK;
by ID;
run;
です。
0 件のコメント:
コメントを投稿