SAS - อาร์เรย์

อาร์เรย์ใน SAS ใช้เพื่อจัดเก็บและดึงข้อมูลชุดของค่าโดยใช้ค่าดัชนี ดัชนีแสดงตำแหน่งในพื้นที่หน่วยความจำที่สงวนไว้

ไวยากรณ์

ใน SAS อาร์เรย์ถูกประกาศโดยใช้ไวยากรณ์ต่อไปนี้ -

ARRAY ARRAY-NAME(SUBSCRIPT) ($) VARIABLE-LIST ARRAY-VALUES

ในไวยากรณ์ข้างต้น -

  • ARRAY คือคีย์เวิร์ด SAS เพื่อประกาศอาร์เรย์

  • ARRAY-NAME คือชื่อของอาร์เรย์ซึ่งเป็นไปตามกฎเดียวกันกับชื่อตัวแปร

  • SUBSCRIPT คือจำนวนค่าที่อาร์เรย์จะจัดเก็บ

  • ($) เป็นพารามิเตอร์ทางเลือกที่จะใช้เฉพาะในกรณีที่อาร์เรย์จัดเก็บค่าอักขระ

  • VARIABLE-LIST เป็นรายการทางเลือกของตัวแปรซึ่งเป็นตัวยึดสำหรับค่าอาร์เรย์

  • ARRAY-VALUESคือค่าจริงที่เก็บไว้ในอาร์เรย์ สามารถประกาศได้ที่นี่หรืออ่านได้จากไฟล์หรือดาตาไลน์

ตัวอย่างของการประกาศอาร์เรย์

อาร์เรย์สามารถประกาศได้หลายวิธีโดยใช้ไวยากรณ์ข้างต้น ด้านล่างนี้คือตัวอย่าง

# Declare an array of length 5 named AGE with values.
ARRAY AGE[5] (12 18 5 62 44);

# Declare an array of length 5 named COUNTRIES with values starting at index 0.
ARRAY COUNTRIES(0:8) A B C D E F G H I;

# Declare an array of length 5 named QUESTS which contain character values.
ARRAY QUESTS(1:5) $ Q1-Q5;

# Declare an array of required length as per the number of values supplied.
ARRAY ANSWER(*) A1-A100;

การเข้าถึงค่าอาร์เรย์

ค่าที่เก็บไว้ในอาร์เรย์สามารถเข้าถึงได้โดยใช้ printขั้นตอนดังแสดงด้านล่าง หลังจากประกาศโดยใช้วิธีใดวิธีหนึ่งข้างต้นข้อมูลจะถูกจัดส่งโดยใช้คำสั่ง DATALINES

DATA array_example;
INPUT a1 $ a2 $ a3 $ a4 $ a5 $;
ARRAY colours(5) $ a1-a5;
mix = a1||'+'||a2;
DATALINES;
yello pink orange green blue
;
RUN;
PROC PRINT DATA = array_example;
RUN;

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

การใช้ตัวดำเนินการ OF

ตัวดำเนินการ OF ถูกใช้ในการวิเคราะห์ข้อมูลในรูปแบบอาร์เรย์เพื่อทำการคำนวณในแถวทั้งหมดของอาร์เรย์ ในตัวอย่างด้านล่างเราใช้ผลรวมและค่าเฉลี่ยของค่าในแต่ละแถว

DATA array_example_OF;
   INPUT A1 A2 A3 A4;
   ARRAY A(4) A1-A4;
   A_SUM = SUM(OF A(*));
   A_MEAN = MEAN(OF A(*));
   A_MIN = MIN(OF A(*));
   DATALINES;
   21 4 52 11
   96 25 42 6
   ;
   RUN;
   PROC PRINT DATA = array_example_OF;
   RUN;

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

การใช้ตัวดำเนินการ IN

ค่าในอาร์เรย์สามารถเข้าถึงได้โดยใช้ตัวดำเนินการ IN ซึ่งตรวจสอบการมีอยู่ของค่าในแถวของอาร์เรย์ ในตัวอย่างด้านล่างเราตรวจสอบความพร้อมใช้งานของสี "เหลือง" ในข้อมูล ค่านี้คำนึงถึงขนาดตัวพิมพ์

DATA array_in_example;
   INPUT A1 $ A2 $ A3 $ A4 $;
   ARRAY COLOURS(4) A1-A4;
   IF 'yellow' IN COLOURS THEN available = 'Yes';ELSE available = 'No';
   DATALINES;
   Orange pink violet yellow
   ;
   RUN;
   PROC PRINT DATA = array_in_example;
   RUN;

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -