Re: [程式] SAS對不同列進行欄位分析該怎麼做?
: ※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 1.163.167.227
: ※ 編輯: ckaha 來自: 1.163.167.227 (01/18 18:44)
: 推 sti1nox:噢噢感謝ckaha大大! 只是我還有個小疑問,倘若我想定義如 01/18 21:36
: → sti1nox:有A及B的人為group=1 有A及C的人為group=2 有B及C的人則為 01/18 21:38
: → sti1nox:group=3 也就是說其group是有意義的,而後面的其他筆紀錄 01/18 21:39
: → sti1nox:也希望可以繼續按照此組合來定義group,大致如此,很謝謝您! 01/18 21:40
在Step2修改
data C;
set B;
if A=1 and B=1 then group =1;
else if A=1 and C=1 then group =2;
else if B=1 and D=1 then group =3;
run;
複雜一點可以自己定 e.g., A,B,C,D,E,....Z
PS:這個用二進位表示group 可以很快速知道是哪個位置有值
或者用文字直接記錄這樣比較快
data C;
set B;
array NUM{*} _numeric_;
/*前三個不要因為是col1-3*/
group = 0;
do i=4 to dim(NUM);
group = group*2 + NUM[i];
end;
run;
法二
data C;
length group $2.;
set B;
array NUM{*} _numeric_;
group='';
do i=4 to dim(NUM);
if NUM[i] eq 1 then do;
group = cat(group,vname(NUM[i]);
end;
end;
run;
以上
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.163.167.227
※ 編輯: ckaha 來自: 1.163.167.227 (01/19 16:33)
推
01/21 18:39, , 1F
01/21 18:39, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):