1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| %macro val_manquantes(BIB,TAB,ENV);
/*proc sql noprint;
select name into:list_var separated by ' ' from dictionary.columns
where upcase(libname)="&BIB." and upcase(memname)="&TAB.";
quit;
*/
/* Créer une macro variable list_varnmiss contenant la liste des variables de la table &BIB..&TAB. concaténées à nmiss() */
proc sql noprint;
select cat('nmiss(', strip(name), ') as ', strip(name), ' ') into:list_varnmiss separated by ','
from dictionary.columns
where upcase(libname)="&BIB." and upcase(memname)="&TAB.";
quit;
/* Calculer le nombre des valeurs maquantes par BO */
proc sql;
create table WORK.VALEURSCOMPTEES_&TAB. as select distinct
cat(LB_BO,'_VAL_MANQUANTE' ) as STATS,
LB_BO,DT_IMAGE,&list_varnmiss.
from &BIB..&TAB.
group by STATS;
quit;
/* Creer une macro variable list_vartotaux contenant la liste des variables de la table &BIB..&TAB. concaténées à count() */
proc sql noprint;
select cat('count( ID_CONTRAT) as ', strip(name), ' ') into:list_vartotaux separated by ','
from dictionary.columns
where upcase(libname)="&BIB." and upcase(memname)="&TAB.";
quit;*/
/* Calculer le nombre total d'observations des variables par BO */
/* proc sql;
create table WORK.VALEURSCOMPTEES1_&TAB. as select
cat(LB_BO,'_TOT' ) as STATS
,&list_vartotaux.
from &BIB..&TAB.
group by STATS;
quit;
/* Concatener les deux tables de calcul des valeurs manquantes et de calcul des totaux */
Data Valeurs_mq_&TAB._&ENV.;
set WORK.VALEURSCOMPTEES_&TAB. WORK.VALEURSCOMPTEES1_&TAB.;
run;
%mend;
%val_manquantes(BUD_MOAR,T_FLUX,R); |
Partager