BookmarkSubscribeRSS Feed
Assaf_Attas
Obsidian | Level 7

שלום לכולם,

לעיתים אנו נדרשים לוודא כי טבלה מסוימת אינה מכילה כפילויות.

הדרך האידאלית לוודא זאת היא ע"י שימוש באופציית nodupkeys של פרוצדורת המיון ובדיקת הלוג.

אולם.. מה אם לצערנו כן נתגלו כפילויות?

כיצד הכי נוח יהיה לאתר אותן?

 

לשם כך יהיה שימושי המאקרו הבא..

הפלט מכיל 4 קבצים:

1. הקובץ המקורי כאשר הוא ממוין.

2. תוצאה ממוינת ללא חזרות.

3. תוצאה של הרשומות המהוות חזרה כפולה.

4. השימושי ביותר > מיזוג של הרשומות הכפולות חזרה אל תוך הקובץ המקורי כך שהתוצאה מהווה פלט מלא של הרשומות בהם יש חזרה.

 

%macro _sort4dups(source_lib=, source_tbl=, by_vars=);

proc sort data= &source_lib..&source_tbl
out= &source_tbl._A_sorted
;
by &by_vars;
run;

proc sort data= &source_tbl._A_sorted
out= &source_tbl._B_nodups
dupout= &source_tbl._C_dups1
nodupkeys
;
by &by_vars;
run;

data &source_tbl._C_dups2;
merge &source_tbl._C_dups1 (in=a keep=&by_vars) &source_tbl._A_sorted (in=b);
by &by_vars;
if a;
run;

%mend;



%_sort4dups(source_lib=sashelp, source_tbl=class, by_vars= Age);

 

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

Discussion stats
  • 0 replies
  • 445 views
  • 2 likes
  • 1 in conversation