Re: [程式] SAS邏輯歸類問題
※ 引述《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
推
05/02 10:12, , 1F
05/02 10:12, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):