SAS - Diziler

SAS'daki diziler, bir dizin değeri kullanarak bir dizi değeri depolamak ve almak için kullanılır. Dizin, ayrılmış bir bellek alanındaki konumu temsil eder.

Sözdizimi

SAS'da bir dizi aşağıdaki sözdizimi kullanılarak bildirilir -

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

Yukarıdaki sözdiziminde -

  • ARRAY bir dizi bildirmek için kullanılan SAS anahtar kelimesidir.

  • ARRAY-NAME değişken isimleriyle aynı kuralı izleyen dizinin adıdır.

  • SUBSCRIPT dizinin depolayacağı değerlerin sayısıdır.

  • ($) yalnızca dizi karakter değerlerini depolayacaksa kullanılacak isteğe bağlı bir parametredir.

  • VARIABLE-LIST dizi değerleri için yer tutucular olan isteğe bağlı değişkenler listesidir.

  • ARRAY-VALUESdizide depolanan gerçek değerlerdir. Burada beyan edilebilirler veya bir dosyadan veya veri tabanından okunabilirler.

Dizi Bildirimi Örnekleri

Diziler, yukarıdaki sözdizimi kullanılarak birçok şekilde bildirilebilir. Örnekler aşağıdadır.

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

Dizi Değerlerine Erişim

Bir dizide depolanan değerlere, printaşağıda gösterildiği gibi prosedür. Yukarıdaki yöntemlerden biri kullanılarak bildirildikten sonra, veriler DATALINES ifadesi kullanılarak sağlanır.

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;

Yukarıdaki kodu çalıştırdığımızda, aşağıdaki sonucu verir -

OF operatörünü kullanma

OF operatörü, bir dizinin tüm satırında hesaplamalar gerçekleştirmek için bir Dizi oluşturan verileri analiz ederken kullanılır. Aşağıdaki örnekte, her satıra değerlerin Toplamını ve Ortalamasını uyguluyoruz.

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;

Yukarıdaki kodu çalıştırdığımızda, aşağıdaki sonucu verir -

IN operatörünü kullanma

Bir dizideki değere, dizinin satırındaki bir değerin varlığını kontrol eden IN operatörü kullanılarak da erişilebilir. Aşağıdaki örnekte, verilerde "Sarı" renginin varlığını kontrol ediyoruz. Bu değer büyük / küçük harfe duyarlıdır.

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;

Yukarıdaki kodu çalıştırdığımızda, aşağıdaki sonucu verir -