/**************************************************************************************************************/ /* CORSO SLA */ /***********************************************************************************************************/ /* IN CLONE NON USO OPZIONE LIBNAME PER RICHIAMARE UN DATASET MA DEVO IDENTIFICARE LA LIBRERIA CORRETTA*/ /* AD ESEMPIO LA LIBRERIA DEL CPO E' AS909OUT */ /*in questo caso per lavorarci fuori da CLONE uso per comodità una libreria con lo stesso nome di quella che troverei se aprissi CLONE dal cpo */ Libname AS909OUT "G:\Corso CloneDWH SAS EG"; run; /****************************************************************/ /* ESERCITAZIONE 1 */ /****************************************************************/ *Copia temporanea di un file sas (in questo caso usiamo il file delle SDO) nella nell'area work; data sdo18; set AS909OUT.corsosla_sdoreg18; run; *Copia temporanea di un file sas (SDO anno 2018) conservando solo alcune variabili; data sdo18_1; set AS909OUT.corsosla_sdoreg18; keep ID_ANONIMO_RIC COD_AZIENDA ETA ANNO_COMPETENZA N_GG_DEGENZA IST8 COD_INTERVENTO C_ICD_IX_CM SESSO; run; *Copia temporanea di un file sas (SDO anno 2017) conservando solo alcune variabili; data sdo17_1; set AS909OUT.corsosla_sdoreg17; keep ID_ANONIMO_RIC COD_AZIENDA ETA ANNO_COMPETENZA N_GG_DEGENZA IST8 COD_INTERVENTO C_ICD_IX_CM SESSO; run; * append - unione di due file che devono contenere variabili aventi lo stesso nome, la stessa lunghezza e lo stesso formato ; data sdo1718; set sdo17_1 sdo18_1; run; *alcune funzioni sas secondo presentazione Daniela; data sdo1718_funz; set sdo1718; *DICHIARAZIONE DI ASSEGNAZIONE; *NUMERICA; X=3; *CARATTERE; A="ABC"; *FUNZIONI MATEMATICHE; *SOMMA I GIORNI DI DEGENZA E LA VARIABILE APPENA DEFINITA X; SUM_GG_X= (N_GG_DEGENZA + X); *RAGICE QUADRATA; SQRT_GG=SQRT(N_GG_DEGENZA); *LOGARITMO; LOG_GG = LOG(N_GG_DEGENZA); ORE_DEGENZA = N_GG_DEGENZA * 24; *TRATTAMENTO E MODIFICA DELLE VARIABILI; DIA_PRINC = substr(C_ICD_IX_CM, 1, 3); PAZIENTE = SESSO||ETA; PAZIENTE1 = TRIM(SESSO)||ETA; PAZIENTE2 = TRIM(ETA)||SESSO; PAZIENTE3 = COMPRESS(SESSO||ETA); run; *DROP RENAME; DATA SDO1718_clean; SET sdo1718_funz; drop paziente paziente1 paziente2; * rename (old variable)= (new varaible); rename paziente3 = soggetto; run; *SELEZIONE/RIDUZIONE DELLE OSSERVAZIONI; *Dichiarazione IF subsetting; data sdo1718_selez; set SDO1718_clean; if sesso="F"; keep id_anonimo_ric sesso ; run; *Dichiarazione delete: ; data sdo1718_selez_F; set SDO1718_CLEAN; if sesso = "M" then delete; keep id_anonimo_ric sesso ; run; *ISTRUZIONI LOGICHE E CONDIZIONALI ; *Dichiarazione IF-THEN-ELSE; data sdo1718_logic; set SDO1718_CLEAN; if sesso = "M" then sesso_istat=1; if sesso = "F" then sesso_istat=2; if 0<=eta<=20 then eta_cl=1; if 21<=eta<=40 then eta_cl=2; if 41<=eta<=60 then eta_cl=3; if 61<=eta<=80 then eta_cl=4; if eta >80 then eta_cl=5; keep id_anonimo_ric sesso sesso_istat eta eta_cl; run;