Re: [程式] SAS 欄位字串的比對(包含的概念)

看板Statistics作者 (Kate)時間1年前 (2022/06/02 15:20), 編輯推噓2(206)
留言8則, 2人參與, 1年前最新討論串2/2 (看更多)
data main; input text $20. ; cards; 芒果20顆+蘋果10粒 今天吃西瓜*1 蘋果2顆 今年下雨荔枝泡湯了 芒果20顆;香蕉2跟 香蕉,4根 ; data list; input list $ ; cards; 芒果 蘋果 ; proc sql noprint; select distinct list into : list_1 separated by "#" from list ;quit; %put &list_1; %macro out1 ; data main1; set main; %let v1=1; %do %until (%length(%scan(&list_1.,&v1,"#"))=0); %let xvar1=%scan(&list_1.,&v1,"#"); text1=ksubstr(text,kfind(text,"&xvar1."),2); if missing(text1)=0 then output; %let v1=%eval(&v1+1); %end; run; %mend out1; %out1; 我直接用你提供的範例資料做測試 有問題可以再討論 ※ 引述《linda841004 (水凝結)》之銘言: : [軟體程式類別]:SAS : [程式問題]:資料處理 : [軟體熟悉度]:熟悉 : [問題敘述]: : 有兩個檔案: : 檔案1為「被比對的清單」如圖 : http://i.imgur.com/vDbKe11.jpg
: 檔案2為「比對清單」如圖 : http://i.imgur.com/j6Fec8H.jpg
: 操作概念為: : 如果比對清單內的比對內容欄位, : 有‘包含’在被比對清單的文字段欄位中, : 則比對成功, : 並輸出被比對清單的擷取欄位值 : (結果如下圖) : http://i.imgur.com/utpRZdm.jpg
: 因比對清單很多,想問問看有沒有什麼方法可以處理此問題呢? : 感謝各位相助~~~ : [程式範例]: : 目前使用的方法會因為比對清單過多而寫到瘋掉(現已先用此方法解決[有借助excel]), : 想請教有無更好的方法解決呢? : 程式如下: : %macro output(a,b,c); : proc sql; : create table &c. as : select 文字段,&b. as 比對內容 : from TEST1 : where 文字段 like (&a.) : ; : quit; : %mend; : %output('%蘋果%','蘋果',t1); : %output('%芒果%','芒果',t2); : /*如有多的清單則往下加*/ : data all_list; : set t1-t100; : run; : (111/6/2補充:借助excel的方法) : http://i.imgur.com/oKfMxim.jpg
: 再補充: : 被比對資料幾萬筆、比對資料約數百筆 : 再次感謝各位大大們~~ : ----- : Sent from JPTT on my Google Pixel 6. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.11.127 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1654154428.A.B33.html

06/02 22:02, 1年前 , 1F
謝謝大大!現在遇到的瓶頸是如比對內容欄位字數不一
06/02 22:02, 1F

06/02 22:02, 1年前 , 2F
致,就無法完整抓出
06/02 22:02, 2F

06/02 22:02, 1年前 , 3F
我在研究看看!
06/02 22:02, 3F

06/02 22:03, 1年前 , 4F
“再”
06/02 22:03, 4F

06/02 22:37, 1年前 , 5F
text1=ksubstr(text,kfind(text,"&xvar1."),klength(“&xvar
06/02 22:37, 5F

06/02 22:37, 1年前 , 6F
1.”));
06/02 22:37, 6F

06/02 22:37, 1年前 , 7F
字數問題的話,這段應該可以改成這樣
06/02 22:37, 7F

06/02 23:31, 1年前 , 8F
大感謝!!!!
06/02 23:31, 8F
文章代碼(AID): #1Yc6Iyip (Statistics)
文章代碼(AID): #1Yc6Iyip (Statistics)