1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| * je crée une clé avec tes trois variables freq de façon à les ranger directement dans l'ordre Max(freq1) puis Max(freq2) puis Max(freq3);
* la variable clé devra être mmodifiée en fonction de tes valeurs de freq (si freq peut aller jusqu'à 10 000 alors ajouter des 0);
* la variable nb compte le nombre d occurences différentes de chaque clé;
proc sql;
create table test as
select t.* , freq1*1000000+freq2*1000+freq3 as cle , count(*) as nb
from t
group by id , cle
order by id , cle desc;
quit;
* seule la première ligne de la table précédente nous intéresse;
* sinon une seule occurence : c est celle que l on cherche, sinon il y en a plusieurs et on retient donc "00";
data test2 (keep=id cod);
set test;
by id;
if first.id then do;
if nb>1 then cod='00';
output;
end;
run; |
Partager