Jak korzystać z opcji in= w sas-ie


Możesz użyć opcji IN= w SAS-ie, aby utworzyć zmienną logiczną, która wskazuje, czy bieżąca obserwacja pochodzi ze zbioru danych wejściowych, czy nie.

Opcja IN= jest powszechnie używana, gdy dodajesz do siebie dwa zbiory danych i chcesz wiedzieć, czy konkretny wiersz w wynikowym zbiorze danych pochodzi z jednego z określonych wejściowych zbiorów danych.

Poniższy przykład pokazuje jak w praktyce wykorzystać opcję IN= .

Przykład: Jak używać opcji IN= w SAS-ie

Załóżmy, że mamy dwa zbiory danych zawierające informacje o koszykarzach biorących udział w konferencjach wschodniej i zachodniej NBA:

 /*create East dataset*/
data east_data;
    input team $points;
    datalines ;
Celtics 22
Pistons 14
Nets 35
Hornets 19
Magic 22
;
run ;

/*create West dataset*/
data west_data;
    input team $points;
    datalines ;
Mavs 40
Rockets 39
Warriors 23
Lakers 19
Clippers 25
;
run ;

/*view datasets*/
proc print data =east_data;
proc print data =west_data;

Możemy użyć następującej składni, aby utworzyć nowy zbiór danych, który doda te dwa zbiory danych:

 /*create new dataset*/
data all_data;
    set east_data west_data;
run ;

/*view new dataset*/
proc print data =all_data; 

Należy pamiętać, że każdy wiersz w każdym zbiorze danych należy do nowego zbioru danych.

Aby dowiedzieć się, z jakiego zbioru danych pochodzi każdy wiersz, możemy użyć opcji IN= w następujący sposób:

 /*create new dataset*/
data all_data;
    set east_data west_data( in =i);
    if i then conf='West';
    else conf='East';
run ;

/*view new dataset*/
proc print data =all_data; 

Używając opcji IN= , możemy utworzyć nową kolumnę o nazwie conf , która przyjmuje wartość „East”, jeśli wiersz pochodzi ze zbioru danych o nazwie east_data i wartość „West”, jeśli wiersz pochodzi ze zbioru danych o nazwie east_data. dane zwane ouest_data .

Zauważ, że moglibyśmy również użyć samej instrukcji IF bez instrukcji ELSE , aby utworzyć nową kolumnę, która po prostu przyjmie wartość *, jeśli wiersz pochodzi ze zbioru danych o nazwie east_data :

 /*create new dataset*/
data all_data;
    set east_data( in =i) west_data;
    if i then east_conf='*';
run ;

/*view new dataset*/
proc print data =all_data; 

Używając opcji IN= , możemy utworzyć nową kolumnę o nazwie east_conf , która przyjmuje wartość * , jeśli wiersz pochodzi ze zbioru danych o nazwie east_data i nie ma wartości, jeśli wiersz pochodzi ze zbioru danych o nazwie west_data .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w SAS-ie:

Jak używać operatora NOT EQUAL w SAS-ie
Jak używać operatora „NOT IN” w SAS-ie
Jak połączyć, jeśli A nie B w SAS

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *