/****************************************************************************** * Programme : Combinar tablas con la instrucción BY * Reference : COMBIN504C * Source : https://www.wearecas.eu/en/sampleCode/COMBIN504C ******************************************************************************/ /* --- BLOC 1 --- */ data animal1; input Common $ Animal $ 3-8 Number 10-11; datalines; a Ant 1 b Bird 2 c Cat 3 d Dog 4 e Eagle 5 f Frog 6 g Goose 7 h Hawk 8 i Impala 9 ; data plant1; input Common $ Plant $ 3-10 Number 12-13; datalines; a Grape 1 c Hazelnut 2 e Indigo 3 g Jicama 4 i Kale 5 ; /* Concaténer animal1 et plant1 */ data append_basique; set animal1 plant1; run; proc print data=append_basique; title '1. Concaténation de tables Animal et Plant (Base SAS)'; run; /* --- BLOC 2 --- */ data animal1; input Common $ Animal $ 3-8 Number 10-11; datalines; a Ant 1 b Bird 2 c Cat 3 d Dog 4 e Eagle 5 f Frog 6 g Goose 7 h Hawk 8 i Impala 9 ; data plant1; input Common $ Plant $ 3-10 Number 12-13; datalines; a Grape 1 c Hazelnut 2 e Indigo 3 g Jicama 4 i Kale 5 ; /* Entrelacer animal1 et plant1 par la variable COMMON */ data interleave_by_common; set animal1 plant1; by common; run; proc print data=interleave_by_common; title '2. Entrelacement par la variable COMMON (Base SAS)'; run; /* --- BLOC 3 --- */ data animal1; input Common $ Animal $ 3-8 Number 10-11; datalines; a Ant 1 b Bird 2 c Cat 3 d Dog 4 e Eagle 5 f Frog 6 g Goose 7 h Hawk 8 i Impala 9 ; data plant1; input Common $ Plant $ 3-10 Number 12-13; datalines; a Grape 1 c Hazelnut 2 e Indigo 3 g Jicama 4 i Kale 5 ; /* Entrelacer animal1 et plant1 par COMMON et Number */ data interleave_by_common_number; set animal1 plant1; by common Number; run; proc print data=interleave_by_common_number; title '3. Entrelacement par COMMON et Number (Base SAS)'; run; /* --- BLOC 4 --- */ libname mycas cas; data animal_cas; input Common $ Animal $ 3-8 Number 10-11; datalines; a Ant 1 b Bird 2 c Cat 3 d Dog 4 e Eagle 5 f Frog 6 g Goose 7 h Hawk 8 i Impala 9 ; data plant_cas; input Common $ Plant $ 3-10 Number 12-13; datalines; a Grape 1 c Hazelnut 2 e Indigo 3 g Jicama 4 i Kale 5 ; proc casutil; load data=animal_cas outcaslib='CASUSER' casout='ANIMAL_CAS' replace; load data=plant_cas outcaslib='CASUSER' casout='PLANT_CAS' replace; run; /* Entrelacer les tables CAS par la variable COMMON */ data mycas.interleaveByCommonCas; set mycas.animal_cas mycas.plant_cas; by common; /* La variable _hostname_ peut être utile pour observer la distribution */ hostname=_hostname_; run; proc print data=mycas.interleaveByCommonCas; title '4. Entrelacement par COMMON dans un DATA Step en CAS'; run; /* Nettoyage des tables CAS */ proc casutil; droptable casdata='ANIMAL_CAS' incaslib='CASUSER'; droptable casdata='PLANT_CAS' incaslib='CASUSER'; droptable casdata='INTERLEAVEBYCOMMONCAS' incaslib='CASUSER'; run;