Sas: come dividere le stringhe per delimitatore
È possibile utilizzare la funzione scan() in SAS per dividere rapidamente una stringa in base a un particolare delimitatore.
L’esempio seguente mostra come utilizzare questa funzione nella pratica.
Esempio: dividere le stringhe per delimitatore in SAS
Supponiamo di avere il seguente set di dati in SAS:
/*create dataset*/ data my_data1; input name $25.; datalines ; Andy_Lincoln_Bernard Barry_Michael Chad_Simpson_Smith Derrick_Parson_Henry Eric_Miller Frank_Giovanni_Goodwill ; run ; /*print dataset*/ proc print data =my_data1;
Possiamo usare il seguente codice per dividere rapidamente la stringa del nome in tre stringhe separate:
/*create second dataset with name split into three columns*/ data my_data2; set my_data1; name1= scan (name, 1 , '_'); name2= scan (name, 2 , '_'); name3= scan (name, 3 , '_'); run ; /*view second dataset*/ proc print data =my_data2;
Tieni presente che la stringa della colonna del nome è stata divisa in tre nuove colonne.
Per i nomi per i quali esiste un solo delimitatore, il valore nella colonna name3 è semplicemente vuoto.
Tieni presente che potremmo anche utilizzare la funzione drop per rimuovere la colonna del nome originale dal nuovo set di dati:
/*create second dataset with name split into three columns, drop original name*/ data my_data2; set my_data1; name1= scan (name, 1 , '_'); name2= scan (name, 2 , '_'); name3= scan (name, 3 , '_'); dropname ; run ; /*view second dataset*/ proc print data =my_data2;
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in SAS:
Come normalizzare i dati in SAS
Come rinominare le variabili in SAS
Come rimuovere i duplicati in SAS
Come sostituire i valori mancanti con zero in SAS