/* Déterminer les observations manquantes pour le total de la dette */ data Dianepropre2; set Lib.Dianepropre; if Totdetbrut = . then trou2 = 1; else trou2 = 0; run; /* Calculer le nombre d'observations manquantes par Siren */ proc sql; create table manq as select siren, sum(trou2) as valm label = 'Valeurs manquantes' from Dianepropre2 group by SIREN; quit; /* Inclure la variable '# de valeurs manquantes' dans ma table*/ proc sort data = Manq; by SIREN; run; proc sort data = Dianepropre2; by SIREN annee; run; data Dianepropre3; merge Dianepropre2 (in = in3) Manq (in = in4); by siren; if in3; run; /* Dropper les siren pour lesquels on a plus de 3 observations manquantes*/ data Dianepropre4; set Dianepropre3; if valm > 3 then delete; run; /*Création d'un compteur pour les "trous"*/ proc sort data = Dianepropre4; by Siren annee; run; data Dianepropre5; retain cnt = 0; set Dianepropre4; by siren; if first.siren and trou2 = 1 then cnt = cnt+1; else cnt = 0; run;