SAS - tablice

Tablice w sygnaturze dostępu Współdzielonego są używane do przechowywania i pobierania serii wartości przy użyciu wartości indeksu. Indeks reprezentuje lokalizację w zarezerwowanym obszarze pamięci.

Składnia

W SAS tablica jest deklarowana przy użyciu następującej składni -

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

W powyższej składni -

  • ARRAY jest słowem kluczowym SAS do deklarowania tablicy.

  • ARRAY-NAME to nazwa tablicy, która podlega tej samej zasadzie co nazwy zmiennych.

  • SUBSCRIPT to liczba wartości, które tablica będzie przechowywać.

  • ($) jest opcjonalnym parametrem, który ma być używany tylko wtedy, gdy tablica ma przechowywać wartości znakowe.

  • VARIABLE-LIST jest opcjonalną listą zmiennych, które są miejscami dla wartości tablicowych.

  • ARRAY-VALUESsą rzeczywistymi wartościami przechowywanymi w tablicy. Można je zadeklarować tutaj lub odczytać z pliku lub z linii danych.

Przykłady deklaracji tablicy

Tablice można deklarować na wiele sposobów, korzystając z powyższej składni. Poniżej znajdują się przykłady.

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

Dostęp do wartości tablicowych

Dostęp do wartości przechowywanych w tablicy można uzyskać za pomocą printprocedurę, jak pokazano poniżej. Po zadeklarowaniu za pomocą jednej z powyższych metod, dane są dostarczane za pomocą instrukcji 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;

Kiedy wykonujemy powyższy kod, otrzymujemy następujący wynik -

Korzystanie z operatora OF

Operator OF jest używany podczas analizy danych w postaci tablicy w celu wykonania obliczeń na całym wierszu tablicy. W poniższym przykładzie stosujemy sumę i średnią wartości w każdym wierszu.

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;

Kiedy wykonujemy powyższy kod, otrzymujemy następujący wynik -

Korzystanie z operatora IN

Dostęp do wartości w tablicy można również uzyskać za pomocą operatora IN, który sprawdza obecność wartości w wierszu tablicy. W poniższym przykładzie sprawdzamy dostępność koloru „Yellow” w danych. W tej wartości rozróżniana jest wielkość liter.

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;

Kiedy wykonujemy powyższy kod, otrzymujemy następujący wynik -