作者MmmRrrrX (银色的灵魂)
站内Statistics
标题Re: [程式] SAS逻辑归类问题
时间Mon Apr 30 19:51:36 2012
※ 引述《leo20090401 (花花超人)》之铭言:
: A1 A2 A3 A4 A5 A6 A7 O1 O2
: 0 0 0 1 0 1 0 ?? ??
: 现在A1~A7有各自的编码 分别为 1~7
: 我现在想要SAS进行逻辑如果A1~A7内出现1时
: 依序会填入O1 跟O2内 (所以A1~A7最多只会出现两个1)
: 以此题为例 我希望看到的结果如下
: A1 A2 A3 A4 A5 A6 A7 O1 O2
: 0 0 0 1 0 1 0 4 6
: ﹌﹌﹌
: 想破头想一下午想不出来
: 恳请指教
用巨集硬解
%macro aa;
data newdata;
set yourdata;
O1=0;
O2=0;
%do i=7 %to 1 %by -1;
if A&i=1 then O1=&i;
%end;
%do i=1 %to 7 %by 1;
if A&i=1 then O2=&i;
%end;
run;
%mend;
%aa;
这样做有可能会有一个问题
如果A1到A7里面只有出现一次1
O1跟O2会是相同的数字,这不知道是不是你要的
如果只出现一次1,希望O2是以0表示的话
run上面再加一行 if O2=O1 then O2=0;
这样的解法只适用最多出现两个1!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.24.251.211
1F:推 leo20090401:超详细! 成功解决了! 附带一提&i後要改成&i. 05/02 10:12