simple

compare

##set_simple

Description

L'action (https://go.documentation.sas.com/doc/en/pgmsascdc/v_069/casanpg/cas-simple-compare.htm) du set d'actions (https://go.documentation.sas.com/doc/en/pgmsascdc/v_069/casanpg/cas-simple-TblOfActions.htm) est l'outil ultime pour les détectives de données. Elle permet de confronter deux tables afin d'identifier les similitudes et les différences au niveau des groupes. Elle calcule des statistiques de fréquence, des identifiants de groupe et des positions d'enregistrements. C'est un peu comme comparer deux listes de courses pour voir qui a oublié le beurre, mais en beaucoup plus performant (et sans dispute familiale).

Syntaxe Officielle
simple.compare /
table={caslib="nom_caslib", name="nom_table", where="filtre"},
table2={caslib="nom_caslib", name="nom_table2"},
inputs={"var1", "var2"},
table2Inputs={"var1", "var2"},
casOut={name="table_sortie", replace=true},
generatedColumns={"ALL"}

Paramètres Clés

Nom du paramètre Description
table Spécifie la table de base (la référence) pour la comparaison.
table2 Spécifie la seconde table à comparer avec la table de base.
inputs Liste des variables de la table de base à utiliser pour définir les groupes de comparaison.
table2Inputs Liste des variables correspondantes dans la table2.
casOut Définit la table de sortie CAS qui contiendra les résultats liés à la table de base.
casOut2 Définit la table de sortie CAS pour les résultats liés à la table2.
freqOut Crée une table contenant les fréquences comparées de chaque groupe.
generatedColumns Définit quelles colonnes automatiques (identifiants, fréquences, positions) doivent être ajoutées aux tables de sortie.
includeDuplicates Détermine si l'on doit sortir uniquement les groupes uniques ou tous les enregistrements correspondants.

Préparation des données

Création de données de test pour comparaison

On crée deux tables simples avec des IDs communs et différents pour illustrer la puissance de la comparaison.

1DATA casuser.base; INPUT id $ produit $; CARDS; 1 Pomme 1 Pomme 2 Banane 3 Orange ; RUN; DATA casuser.comp; INPUT id $ produit $; CARDS; 1 Pomme 2 Poire 4 Kiwi ; RUN; PROC CAS; TABLE.promote / name="base", caslib="casuser"; TABLE.promote / name="comp", caslib="casuser"; RUN;

Exemples d'utilisation

Comparaison basique de deux tables

On compare les groupes basés sur la colonne 'produit' entre les deux tables.

1PROC CAS; SIMPLE.compare / TABLE="base", table2="comp", inputs="produit", table2Inputs="produit"; RUN;
Résultat Attendu :
Le journal affichera le nombre de groupes trouvés dans chaque table et les correspondances.
Comparaison avancée avec tables de sortie et colonnes générées

Cet exemple génère une table de fréquences et inclut toutes les colonnes de diagnostic (_Frequency_, _GroupID_, etc.) pour voir exactement où les données divergent.

1PROC CAS; SIMPLE.compare / TABLE={name="base", caslib="casuser"}, table2={name="comp", caslib="casuser"}, inputs="produit", table2Inputs="produit", casOut={name="diff_base", replace=true}, casOut2={name="diff_comp", replace=true}, freqOut={name="freq_compare", replace=true}, generatedColumns="ALL", includeDuplicates={"FREQOUT"}; RUN;
Résultat Attendu :
Trois tables sont créées : 'diff_base' et 'diff_comp' marquent les lignes, et 'freq_compare' montre les écarts de fréquence par produit.