SAS - Mảng

Mảng trong SAS được sử dụng để lưu trữ và truy xuất một loạt giá trị bằng cách sử dụng giá trị chỉ mục. Chỉ mục đại diện cho vị trí trong vùng bộ nhớ dành riêng.

Cú pháp

Trong SAS, một mảng được khai báo bằng cú pháp sau:

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

Trong cú pháp trên -

  • ARRAY là từ khóa SAS để khai báo một mảng.

  • ARRAY-NAME là tên của mảng tuân theo quy tắc giống như tên biến.

  • SUBSCRIPT là số giá trị mà mảng sẽ lưu trữ.

  • ($) là một tham số tùy chọn chỉ được sử dụng nếu mảng sẽ lưu trữ các giá trị ký tự.

  • VARIABLE-LIST là danh sách tùy chọn của các biến là giá trị giữ chỗ cho các giá trị mảng.

  • ARRAY-VALUESlà các giá trị thực được lưu trữ trong mảng. Chúng có thể được khai báo ở đây hoặc có thể được đọc từ một tệp hoặc dữ liệu.

Ví dụ về khai báo mảng

Mảng có thể được khai báo theo nhiều cách bằng cú pháp trên. Dưới đây là các ví dụ.

# 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;

Truy cập giá trị mảng

Các giá trị được lưu trữ trong một mảng có thể được truy cập bằng cách sử dụng printthủ tục như hình dưới đây. Sau khi nó được khai báo bằng một trong các phương pháp trên, dữ liệu được cung cấp bằng cách sử dụng câu lệnh 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;

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:

Sử dụng toán tử OF

Toán tử OF được sử dụng khi phân tích dạng dữ liệu của một Mảng để thực hiện các phép tính trên toàn bộ hàng của một mảng. Trong ví dụ dưới đây, chúng tôi áp dụng Tổng và Trung bình của các giá trị trong mỗi hàng.

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;

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:

Sử dụng toán tử IN

Giá trị trong một mảng cũng có thể được truy cập bằng cách sử dụng toán tử IN để kiểm tra sự hiện diện của một giá trị trong hàng của mảng. Trong ví dụ dưới đây, chúng tôi kiểm tra tính khả dụng của màu "Vàng" trong dữ liệu. Giá trị này phân biệt chữ hoa chữ thường.

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;

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau: