simple

compare

Description

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.

simple.compare { attributes={{name="variable-name"}, ...}, casOut={caslib="string", compress=TRUE|FALSE, indexVars={"variable-name-1", ...}, label="string", lifetime=64-bit-integer, maxMemSize=64-bit-integer, memoryFormat="DVR"|"INHERIT"|"STANDARD", name="table-name", promote=TRUE|FALSE, replace=TRUE|FALSE, replication=integer, tableRedistUpPolicy="DEFER"|"NOREDIST"|"REBALANCE", threadBlockSize=64-bit-integer, timeStamp="string", where={"string-1", ...}}, casOut2={caslib="string", compress=TRUE|FALSE, indexVars={"variable-name-1", ...}, label="string", lifetime=64-bit-integer, maxMemSize=64-bit-integer, memoryFormat="DVR"|"INHERIT"|"STANDARD", name="table-name", promote=TRUE|FALSE, replace=TRUE|FALSE, replication=integer, tableRedistUpPolicy="DEFER"|"NOREDIST"|"REBALANCE", threadBlockSize=64-bit-integer, timeStamp="string", where={"string-1", ...}}, copyVars={"variable-name-1", ...}, cumFreq2Name="variable-name", cumFreqName="variable-name", details=TRUE|FALSE, divider="string", freqOut={caslib="string", compress=TRUE|FALSE, indexVars={"variable-name-1", ...}, label="string", lifetime=64-bit-integer, maxMemSize=64-bit-integer, memoryFormat="DVR"|"INHERIT"|"STANDARD", name="table-name", promote=TRUE|FALSE, replace=TRUE|FALSE, replication=integer, tableRedistUpPolicy="DEFER"|"NOREDIST"|"REBALANCE", threadBlockSize=64-bit-integer, timeStamp="string", where={"string-1", ...}}, frequency2Name="variable-name", frequencyName="variable-name", generatedColumns={"ALL", "CUMFREQ", "F", "FREQUENCY", "GROUPID", "NONE", "POSITION"}, groupID2Name="variable-name", groupIDBothName="variable-name", groupIDName="variable-name", includeDuplicates={"CASOUT", "CASOUT2", "FREQOUT"}, includeMissing=TRUE|FALSE, inputRegEx={"string-1", ...}, inputs={{name="variable-name"}, ...}, journalTrace=TRUE|FALSE, keyModify={"string-1", ...}, maxFrequency=64-bit-integer, maxPosition=64-bit-integer, minFrequency=64-bit-integer, minGroupsLL=64-bit-integer, minPosition=64-bit-integer, noVars=TRUE|FALSE, noVars2=TRUE|FALSE, outputNamedTables=TRUE|FALSE, position=64-bit-integer, position2Name="variable-name", positionName="variable-name", sparse=TRUE|FALSE, table={caslib="string", computedOnDemand=TRUE|FALSE, computedVars={{name="variable-name"}, ...}, computedVarsProgram="string", dataSourceOptions={key-1=any-list-or-data-type-1, ...}, importOptions={fileType="ANY"|"AUDIO"|"AUTO"|"BASESAS"|"CSV"|"DELIMITED"|"DOCUMENT"|"DTA"|"ESP"|"EXCEL"|"FMT"|"HDAT"|"IMAGE"|"JMP"|"LASR"|"PARQUET"|"SOUND"|"SPSS"|"VIDEO"|"XLS", fileType-specific-parameters}, name="table-name", singlePass=TRUE|FALSE, vars={{name="variable-name"}, ...}, where="where-expression", whereTable={casLib="string", dataSourceOptions={adls_noreq-parameters | bigquery-parameters | cas_noreq-parameters | clouddex-parameters | db2-parameters | dnfs-parameters | esp-parameters | fedsvr-parameters | gcs_noreq-parameters | hadoop-parameters | hana-parameters | impala-parameters | informix-parameters | jdbc-parameters | mongodb-parameters | mysql-parameters | odbc-parameters | oracle-parameters | path-parameters | postgres-parameters | redshift-parameters | s3-parameters | sapiq-parameters | sforce-parameters | singlestore_standard-parameters | snowflake-parameters | spark-parameters | spde-parameters | sqlserver-parameters | ss_noreq-parameters | teradata-parameters | vertica-parameters | yellowbrick-parameters}, importOptions={fileType="ANY"|"AUDIO"|"AUTO"|"BASESAS"|"CSV"|"DELIMITED"|"DOCUMENT"|"DTA"|"ESP"|"EXCEL"|"FMT"|"HDAT"|"IMAGE"|"JMP"|"LASR"|"PARQUET"|"SOUND"|"SPSS"|"VIDEO"|"XLS", fileType-specific-parameters}, name="table-name", vars={{name="variable-name"}, ...}, where="where-expression"}}, table2={caslib="string", computedOnDemand=TRUE|FALSE, computedVars={{name="variable-name"}, ...}, computedVarsProgram="string", dataSourceOptions={key-1=any-list-or-data-type-1, ...}, groupByMode="NOSORT"|"REDISTRIBUTE", importOptions={fileType="ANY"|"AUDIO"|"AUTO"|"BASESAS"|"CSV"|"DELIMITED"|"DOCUMENT"|"DTA"|"ESP"|"EXCEL"|"FMT"|"HDAT"|"IMAGE"|"JMP"|"LASR"|"PARQUET"|"SOUND"|"SPSS"|"VIDEO"|"XLS", fileType-specific-parameters}, name="table-name", singlePass=TRUE|FALSE, vars={{name="variable-name"}, ...}, where="where-expression", whereTable={casLib="string", dataSourceOptions={adls_noreq-parameters | bigquery-parameters | cas_noreq-parameters | clouddex-parameters | db2-parameters | dnfs-parameters | esp-parameters | fedsvr-parameters | gcs_noreq-parameters | hadoop-parameters | hana-parameters | impala-parameters | informix-parameters | jdbc-parameters | mongodb-parameters | mysql-parameters | odbc-parameters | oracle-parameters | path-parameters | postgres-parameters | redshift-parameters | s3-parameters | sapiq-parameters | sforce-parameters | singlestore_standard-parameters | snowflake-parameters | spark-parameters | spde-parameters | sqlserver-parameters | ss_noreq-parameters | teradata-parameters | vertica-parameters | yellowbrick-parameters}, importOptions={fileType="ANY"|"AUDIO"|"AUTO"|"BASESAS"|"CSV"|"DELIMITED"|"DOCUMENT"|"DTA"|"ESP"|"EXCEL"|"FMT"|"HDAT"|"IMAGE"|"JMP"|"LASR"|"PARQUET"|"SOUND"|"SPSS"|"VIDEO"|"XLS", fileType-specific-parameters}, name="table-name", vars={{name="variable-name"}, ...}, where="where-expression"}}, table2Attributes={{name="variable-name"}, ...}, table2CopyVars={"variable-name-1", ...}, table2Inputs={{name="variable-name"}, ...} }
Paramètres
ParamètreDescription
attributesSpécifie les attributs des variables.
casOutSpécifie les paramètres pour une table de sortie.
casOut2Spécifie la table de sortie casOut2.
copyVarsSpé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.
cumFreq2NameSpé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_.
cumFreqNameSpé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_.
detailsSpécifie que des messages tels que le nombre de groupes et d'autres détails sont écrits dans le journal SAS.
dividerSpé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.
freqOutSpécifie les paramètres pour la table de fréquences.
frequency2NameSpé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_.
frequencyNameSpé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_.
generatedColumnsSpécifie les colonnes générées à inclure dans les tables de sortie.
groupID2NameSpé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_.
groupIDBothNameSpé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_.
groupIDNameSpé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_.
includeDuplicatesSpécifie s'il faut inclure les groupes uniques ou tous les enregistrements dans les tables de sortie.
includeMissingSpécifie que les groupes ayant une valeur manquante dans une variable groupBy sont inclus dans la table casOut.
inputRegExSpécifie une liste d'expressions régulières, une pour chaque variable dans la liste des entrées.
inputsSpécifie les variables d'entrée pour l'analyse.
journalTraceLorsque défini sur True, l'action écrit des informations de traçage détaillées dans le journal SAS.
keyModifySpé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).
maxFrequencySpécifie que la table de sortie contient des enregistrements avec _Frequency_ inférieur ou égal à ce nombre.
maxPositionSpécifie que la table de sortie contient des enregistrements avec _Position_ inférieur ou égal à ce nombre.
minFrequencySpécifie que la table de sortie contient des enregistrements avec _Frequency_ supérieur ou égal à ce nombre.
minGroupsLLSpécifie le nombre minimum de groupes requis pour utiliser les algorithmes parallèles post-lecture.
minPositionSpécifie que la table de sortie contient des enregistrements avec _Position_ supérieur ou égal à ce nombre.
noVarsLorsque défini sur True, aucune variable n'est automatiquement copiée de la table d'entrée vers la table de sortie.
noVars2Lorsque défini sur True, aucune variable n'est automatiquement copiée de la table de comparaison vers la table de sortie de comparaison.
outputNamedTablesLorsque 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é.
positionSpé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.
position2NameSpé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_.
positionNameSpé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_.
sparseLorsque 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.
tableSpécifie la table de base, sa caslib et d'autres paramètres communs.
table2Spécifie la table de comparaison. Les enregistrements et les groupes de cette table sont comparés à ceux de la table de base.
table2AttributesSpécifie les attributs des colonnes spécifiées dans le paramètre table2Inputs.
table2CopyVarsSpécifie les colonnes de la table de comparaison à copier vers la sortie de la table de comparaison.
table2InputsSpécifie les colonnes de la table de comparaison à inclure dans l'analyse.
Préparation des Données Voir la fiche de ce code dataprep
Création des Données de Test

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.

Copié !
1DATA casuser.cars_table1;
2 LENGTH make $ 20 model $ 20;
3 INFILE DATALINES;
4 INPUT make $ model $;
5 DATALINES;
6Ford Mustang
7Ford F-150
8Toyota Camry
9Toyota RAV4
10Honda Civic
11Honda CR-V
12;
13RUN;
14 
15DATA casuser.cars_table2;
16 LENGTH make $ 20 model $ 20;
17 INFILE DATALINES;
18 INPUT make $ model $;
19 DATALINES;
20Ford Mustang
21Ford Explorer
22Toyota Camry
23Toyota Highlander
24Chevrolet Silverado
25Honda Accord
26;
27RUN;

Exemples

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.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC 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};
7RUN;
Résultat :
Deux tables de sortie sont créées. `unique_to_table1` ne contiendra aucun enregistrement car toutes ses marques sont présentes dans la table 2. `unique_to_table2` contiendra les enregistrements pour 'Chevrolet' car cette marque est unique à la deuxième table.

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.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC 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'};
8RUN;
Résultat :
Une table de sortie `comparison_freq` est créée. Elle listera chaque marque (`make`) et affichera sa fréquence dans `cars_table1` (colonne _Frequency_) et dans `cars_table2` (colonne _Frequency2_). Par exemple, Ford aura une fréquence de 2 dans la première table et 2 dans la seconde, tandis que Chevrolet aura une fréquence de 0 dans la première et 1 dans la seconde.

FAQ

Quel est l'objectif principal de l'action `compare` dans l'ensemble d'actions Simple Analytics ?
Quelles sont les tables d'entrée requises pour l'action `compare` ?
Quels types de tables de sortie peuvent être générés par l'action `compare` ?
Comment peut-on inclure tous les enregistrements, y compris les doublons, dans les tables de sortie ?
À quoi sert le paramètre `generatedColumns` ?
Est-il possible de spécifier les noms des colonnes générées comme la fréquence ou l'ID de groupe ?