Re: [程式] SAS邏輯歸類問題

看板Statistics作者 (銀色的靈魂)時間12年前 (2012/04/30 19:51), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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
超詳細! 成功解決了! 附帶一提&i後要改成&i.
05/02 10:12, 1F
文章代碼(AID): #1FddpBW3 (Statistics)
文章代碼(AID): #1FddpBW3 (Statistics)