作者ckaha (★闪亮数学推理★)
站内Statistics
标题Re: [问题] SAS对不同列进行栏位分析该怎麽做?
时间Sun Jan 19 16:28:49 2014
:
※ 发信站: 批踢踢实业坊(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)
1F:推 sti1nox:恩恩 感谢ckaha前辈! 成功了! 感激万分! 01/21 18:39