BookmarkSubscribeRSS Feed
EyalGonen
Lapis Lazuli | Level 10

שלום לכולם,

 

ברצוני לשתף בדוגמה קצרה של קוד 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

 

אייל

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

Discussion stats
  • 0 replies
  • 250 views
  • 1 like
  • 1 in conversation