BookmarkSubscribeRSS Feed
Hagay
SAS Employee

בשבוע שעבר כאשר דיברנו על המערכים ב – SAS ציינתי שאחת מהנקודות שחשוב לזכור כאשר עובדים עם מערכים היא שב – SAS האינדקסים של מערך מתחילים ב – 1 ולא ב – 0 כמו במרבית שפות התכנות האחרות.

 

ובכן זה אכן נכון אבל זאת רק ברירת המחדל. למעשה אנחנו יכולים להגדיר ב – SAS שהמערך שלנו יתחיל בכל אינדקס שהוא אם נבקש את זה במפורש.

 

למה זה טוב? ברוב המוחלט של הפעמים זה אכן מיותר ו – 1 זה מספר טוב להתחיל איתו את האינדוקס אבל ישנם מקרים שעל ידי בחירה נבונה של האינדקסים אנחנו נקל משמעותית על החיים שלנו כמתכנתים.

 

לדוגמא, נניח שהטבלה PRICEDATA בתיקיה SASHELP כוללת את המחיר בו נמכר מוצר מסוים בשנים 2005 עד 2021 בעמודות price1 עד price17 כך שעמודה price1 היא המחיר עבור 2005, עמודה price2 היא המחיר עבור 2006 וכך הלאה.

 

אם אנחנו נדרשים לעבד את הנתונים בטבלה זאת אנחנו, כמובן, יכולים ליצור מערך רגיל שמתחיל ב – 1 מ – 17 העמודות הללו ולזכור בראש ש – prices[1] מייצג את 2005, prices[2] את 2006 וכך הלאה או להקל משמעותית על חיינו ופשוט לייצור מערך שהאינדקס שלו מתחיל ב – 2005. כך אם אנחנו רוצים למצוא את המחיר של שנת 2011 אנחנו לא צריכים להתחיל לחשב עם האצבעות שלנו כמה שנים עברו מ – 2005 אלא פשוט לפנות ל – prices[2011] – הרבה יותר פשוט והרבה יותר קריא:

data PRICES;
	set SASHELP.PRICEDATA;
	array prices{2005:2021} price1-price17;
	if _n_=1 then put prices[2011]=;
run;

חגי

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
  • 363 views
  • 1 like
  • 1 in conversation