compare
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).
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.
| 1 | DATA 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.
| 1 | PROC CAS; SIMPLE.compare / TABLE="base", table2="comp", inputs="produit", table2Inputs="produit"; RUN; |
Résultat Attendu :
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.
| 1 | PROC 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; |