看板 Statistics 關於我們 聯絡資訊
※ 引述《jupit (lbd)》之銘言: : ※ 引述《alias (希望)》之銘言: : : PROC SORT DATA=work.bb; BY port_code; RUN; : : DATA cc; SET work.bb; BY port_code; : : IF FIRST.port_code THEN n=0; : : n+1; : : IF LAST.port_code & n=1 THEN OUTPUT; RUN; : : 就試試看吧, 以上 : 如果是我會這麼寫 : proc sort nodupkey data=work.bb; : by port_code;run; : data aa; : set work.bb; : if last.port_code=1; : run; : 我通常都是在id非唯一時..如果資料重複(所有欄位都相同情況下)取最後一個id : or 同id而其他欄位並非全相同,則去排priority(看以何欄位為優先, by ....) : 一樣取最後唯一的id 你的方法是當資料有重複的時候,只保留一個無重複的即可 即 若資料為 a b b c c c d d e e f f g 你的作法得到 a b c d e f g 的結果, 也就是去掉重複的部份 而我的作法會得到的是 a g , 也就是只要有重複, 我就都不要了 (程式中 last.port_code=1 時的n值代表 此種port_code的個數 若個數=1, 當然就代表此種port_code並無重複, 是為單一個的) 所以這兩種作法所會得到的結果是不同的 而我個人認為原PO需要的是 "只要有重複, 就不要" 因而提供一點拙見, 也歡迎指教. 祝 愉快 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.76.175.139
jupit:^^..了解~~我想錯了..sorry~ 11/10 10:23
alias:不用sorry啦...了解異同在哪兒就好啦...^^ 11/10 11:43