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