שלום לכולם,
ברצוני לשתף בדוגמה קצרה של קוד SAS המשתמש ב PROC LUA כתחליף לשפת ה SAS Macro. לדעתי השימוש ב LUA הופך את הקוד לקריא וברור לעומת הקוד שמשתמש ב SAS Macro. למידע נוסף ולדוגמאות נוספות אנא ראו קישורים בהמשך הפוסט.
במקרה זה הקוד לדוגמה שולף מתוך קובץ הדוגמה שנקרא SASHELP.CLASS את שמות התלמידים שגילם גדול מ 14 ואז רץ בלולאה על כל השמות שנשלפו ועבור כל שם מריץ PROC PRINT המשלב את שם התלמיד הנוכחי ב title וב where.
proc lua restart;
submit;
-- loop on SAS dataset values and submit SAS code accordingly
local dsid
if sas.exists("sashelp.class") then dsid = sas.open("sashelp.class") end
local i = 0
local classNames = {}
sas.where(dsid, "age>14")
while sas.next(dsid) do
i = i + 1
classNames[i] = sas.get_value(dsid, "Name");
end
sas.close(dsid);
for i,v in ipairs(classNames) do
sas.submit([[
title "Name@i@ = @v@";
proc print data=sashelp.class;
where name = '@v@';
run;
]])
end
endsubmit;
run;
קישורים:
https://support.sas.com/resources/papers/proceedings15/SAS1561-2015.pdf
https://support.sas.com/resources/papers/proceedings17/SAS0212-2017.pdf
אייל