Compare deux tables en calculant l'index et la fréquence de chaque groupe, la fréquence cumulée, et l'index de chaque enregistrement au sein de son groupe.
| Paramètre | Description |
|---|---|
| attributes | Spécifie les attributs des variables. |
| casOut | Spécifie les paramètres pour une table de sortie. |
| casOut2 | Spécifie la table de sortie casOut2. |
| copyVars | Spécifie les colonnes à copier de la table d'entrée vers la table de sortie casOut. Les variables spécifiées dans le paramètre inputs sont automatiquement copiées. |
| cumFreq2Name | Spécifie le nom de la colonne pour la fréquence cumulée dans les tables de sortie. La colonne montre la fréquence cumulée du groupe auquel l'enregistrement appartient, par rapport à la table de comparaison. Le nom de colonne par défaut est _CumFreq2_. |
| cumFreqName | Spécifie le nom de la colonne pour la fréquence cumulée dans les tables de sortie. La colonne montre la fréquence cumulée du groupe auquel l'enregistrement appartient, par rapport à la table d'entrée. Le nom de colonne par défaut est _CumFreq_. |
| details | Spécifie que des messages tels que le nombre de groupes et d'autres détails sont écrits dans le journal SAS. |
| divider | Spécifie le caractère utilisé pour diviser les valeurs de type caractère des variables d'entrée. Spécifiez un caractère qui n'est pas présent dans ces variables. |
| freqOut | Spécifie les paramètres pour la table de fréquences. |
| frequency2Name | Spécifie le nom de la colonne pour les fréquences de groupe dans les tables de sortie. Le nom de colonne par défaut est _Frequency2_. |
| frequencyName | Spécifie le nom de la colonne pour les fréquences de groupe dans les tables de sortie. Le nom de colonne par défaut est _Frequency_. |
| generatedColumns | Spécifie les colonnes générées à inclure dans les tables de sortie. |
| groupID2Name | Spécifie le nom de la colonne pour les ID de groupe dans les tables de sortie. Le nom de colonne par défaut est _Groupid2_. |
| groupIDBothName | Spécifie le nom de la colonne pour les ID de groupe dans les tables de sortie. Le nom de colonne par défaut est _GroupIDBoth_. |
| groupIDName | Spécifie le nom de la colonne pour les ID de groupe dans les tables de sortie. Le nom de colonne par défaut est _GroupID_. |
| includeDuplicates | Spécifie s'il faut inclure les groupes uniques ou tous les enregistrements dans les tables de sortie. |
| includeMissing | Spécifie que les groupes ayant une valeur manquante dans une variable groupBy sont inclus dans la table casOut. |
| inputRegEx | Spécifie une liste d'expressions régulières, une pour chaque variable dans la liste des entrées. |
| inputs | Spécifie les variables d'entrée pour l'analyse. |
| journalTrace | Lorsque défini sur True, l'action écrit des informations de traçage détaillées dans le journal SAS. |
| keyModify | Spécifie si vous souhaitez que les valeurs de caractères dans les variables d'entrée soient justifiées à gauche (L), à droite (R), converties en majuscules (U), et que les espaces consécutifs soient condensés en un seul (C). |
| maxFrequency | Spécifie que la table de sortie contient des enregistrements avec _Frequency_ inférieur ou égal à ce nombre. |
| maxPosition | Spécifie que la table de sortie contient des enregistrements avec _Position_ inférieur ou égal à ce nombre. |
| minFrequency | Spécifie que la table de sortie contient des enregistrements avec _Frequency_ supérieur ou égal à ce nombre. |
| minGroupsLL | Spécifie le nombre minimum de groupes requis pour utiliser les algorithmes parallèles post-lecture. |
| minPosition | Spécifie que la table de sortie contient des enregistrements avec _Position_ supérieur ou égal à ce nombre. |
| noVars | Lorsque défini sur True, aucune variable n'est automatiquement copiée de la table d'entrée vers la table de sortie. |
| noVars2 | Lorsque défini sur True, aucune variable n'est automatiquement copiée de la table de comparaison vers la table de sortie de comparaison. |
| outputNamedTables | Lorsque défini sur True, les tables casOut, casOut2 et de fréquence sont créées uniquement si le paramètre de la table de sortie est spécifié. |
| position | Spécifie de filtrer les enregistrements pour la table de sortie. Seuls les enregistrements qui correspondent à la valeur spécifiée dans la colonne _Position_ sont inclus. |
| position2Name | Spécifie le nom de la colonne pour la position d'un enregistrement au sein de son groupe dans les tables de sortie. Le nom de colonne par défaut est _Position2_. |
| positionName | Spécifie le nom de la colonne pour la position de l'enregistrement au sein de son groupe dans les tables de sortie. Le nom de colonne par défaut est _Position_. |
| sparse | Lorsque défini sur True et que l'action s'exécute sur un serveur distribué, chaque thread lit des données qui n'appartiennent qu'à quelques groupes. Améliore les performances lorsqu'il y a beaucoup de threads, de groupes, ou les deux. |
| table | Spécifie la table de base, sa caslib et d'autres paramètres communs. |
| table2 | Spécifie la table de comparaison. Les enregistrements et les groupes de cette table sont comparés à ceux de la table de base. |
| table2Attributes | Spécifie les attributs des colonnes spécifiées dans le paramètre table2Inputs. |
| table2CopyVars | Spécifie les colonnes de la table de comparaison à copier vers la sortie de la table de comparaison. |
| table2Inputs | Spécifie les colonnes de la table de comparaison à inclure dans l'analyse. |
Ce bloc de code crée deux tables CAS, `CARS_TABLE1` et `CARS_TABLE2`. Ces tables contiennent des informations sur différents modèles de voitures et seront utilisées pour illustrer comment l'action `compare` identifie les différences et les similitudes entre elles.
| 1 | DATA casuser.cars_table1; |
| 2 | LENGTH make $ 20 model $ 20; |
| 3 | INFILE DATALINES; |
| 4 | INPUT make $ model $; |
| 5 | DATALINES; |
| 6 | Ford Mustang |
| 7 | Ford F-150 |
| 8 | Toyota Camry |
| 9 | Toyota RAV4 |
| 10 | Honda Civic |
| 11 | Honda CR-V |
| 12 | ; |
| 13 | RUN; |
| 14 | |
| 15 | DATA casuser.cars_table2; |
| 16 | LENGTH make $ 20 model $ 20; |
| 17 | INFILE DATALINES; |
| 18 | INPUT make $ model $; |
| 19 | DATALINES; |
| 20 | Ford Mustang |
| 21 | Ford Explorer |
| 22 | Toyota Camry |
| 23 | Toyota Highlander |
| 24 | Chevrolet Silverado |
| 25 | Honda Accord |
| 26 | ; |
| 27 | RUN; |
Cet exemple compare les enregistrements des tables `cars_table1` et `cars_table2` en se basant sur la colonne `make`. Il identifie les groupes (marques) qui sont uniques à chaque table.
| 1 | PROC CAS; |
| 2 | SIMPLE.compare / |
| 3 | TABLE={name='cars_table1', groupBy={'make'}}, |
| 4 | table2={name='cars_table2', groupBy={'make'}}, |
| 5 | casOut={name='unique_to_table1', replace=true}, |
| 6 | casOut2={name='unique_to_table2', replace=true}; |
| 7 | RUN; |
Cet exemple effectue une comparaison plus approfondie entre `cars_table1` et `cars_table2`. Il utilise le paramètre `freqOut` pour créer une table (`comparison_freq`) qui montre les différences de fréquence pour chaque marque entre les deux tables. Le paramètre `includeDuplicates` est utilisé pour s'assurer que la table de fréquence inclut tous les groupes, pas seulement ceux avec des fréquences différentes. De plus, `generatedColumns` est défini sur 'ALL' pour inclure toutes les colonnes d'analyse possibles dans les tables de sortie, telles que les ID de groupe et les fréquences cumulées.
| 1 | PROC CAS; |
| 2 | SIMPLE.compare / |
| 3 | TABLE={name='cars_table1', groupBy={'make'}}, |
| 4 | table2={name='cars_table2', groupBy={'make'}}, |
| 5 | freqOut={name='comparison_freq', replace=true}, |
| 6 | includeDuplicates={'FREQOUT'}, |
| 7 | generatedColumns={'ALL'}; |
| 8 | RUN; |
Une banque souhaite lancer une campagne promotionnelle par email. Elle dispose d'une liste brute de clients éligibles et d'une 'Liste Noire' (clients ayant refusé le démarchage ...
Une usine intelligente transmet des logs de capteurs vers le cloud. Suite à une coupure réseau, l'équipe Data Engineering doit comparer les logs locaux (table 1) et les logs reç...
Lors d'une fusion d'entreprises, le service RH compare deux fichiers de personnel. Le défi est double : certains employés ont des codes département manquants (NULL) qui doivent ...