Come utilizzare l'opzione in= in sas


È possibile utilizzare l’opzione IN= in SAS per creare una variabile booleana che indichi se l’osservazione corrente proviene o meno dal set di dati di input.

L’opzione IN= viene comunemente utilizzata quando si aggiungono due set di dati e si desidera sapere se una riga particolare nel set di dati risultante proviene da uno dei set di dati di input specifici.

L’esempio seguente mostra come utilizzare nella pratica l’opzione IN= .

Esempio: come utilizzare l’opzione IN= in SAS

Supponiamo di avere due set di dati contenenti informazioni sui giocatori di basket nelle conferenze orientale e occidentale della 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;

Possiamo utilizzare la seguente sintassi per creare un nuovo set di dati che aggiunge questi due set di dati:

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

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

Tieni presente che ogni riga in ciascun set di dati appartiene al nuovo set di dati.

Per scoprire da quale set di dati proviene ciascuna riga, possiamo utilizzare l’opzione IN= come segue:

 /*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; 

Usando l’opzione IN= possiamo creare una nuova colonna chiamata conf che assume il valore “East” se la riga proviene dal data set chiamato east_data e il valore “West” se la riga proviene dal data set chiamato east_data. dati chiamati ouest_data .

Tieni presente che potremmo anche utilizzare solo un’istruzione IF senza un’istruzione ELSE per creare una nuova colonna che assume semplicemente il valore * se la riga proviene dal set di dati chiamato 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; 

Usando l’opzione IN= , possiamo creare una nuova colonna chiamata east_conf che assume il valore * se la riga proviene dal dataset chiamato east_data e nessun valore se la riga proviene dal dataset chiamato west_data .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in SAS:

Come utilizzare l’operatore NOT EQUAL in SAS
Come utilizzare un operatore “NOT IN” in SAS
Come unire se A non B in SAS

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *