simple

distinct

##set_simple

Description

L'action `distinct` du jeu d'actions `simple` permet de calculer de façon fulgurante (parce qu'on aime quand le serveur bosse vite !) le nombre de valeurs distinctes pour une ou plusieurs variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. dans une table en mémoireGemini said

Espace de stockage temporaire (RAM) utilisé par le moteur CAS pour charger et traiter les données à haute vitesse, minimisant les accès disque pour optimiser les performances de SAS Viya.
. Que vous cherchiez à vérifier la cardinalitéLa cardinalité représente le nombre de valeurs distinctes contenues dans une colonne. Une cardinalité élevée indique une grande diversité de données, influençant le choix des modèles dans CAS. d'une variable métier pour de la modélisationProcessus de création de structures mathématiques ou statistiques sur SAS Viya pour prédire des comportements, classifier des données ou identifier des tendances à partir de jeux de données CAS. ou simplement explorer vos données, c'est l'outil parfait. Pour approfondir, jetez un œil à la .

Syntaxe Officielle
proc cas;
simple.distinct /
table={name="ma_table", caslib="casuser"}
casOut={name="table_sortie", caslib="casuser", replace=true}
inputs={"var1", "var2"}
includeMissing=true
maxNVals=1000;
quit;

Paramètres Clés

Nom du paramètre Description
table La table d'entrée contenant vos précieuses données. Obligatoire.
inputs La liste des variables dont vous souhaitez compter les valeurs distinctes. Idéal pour cibler l'analyse.
casOut La table de sortie où sauvegarder le résultat. Très pratique si vous analysez des centaines de variables et souhaitez requêter le résultat par la suite.
includeMissing Un booléen pour décider si les valeurs manquantes (les fameux points ou espaces vides SAS) doivent être comptées comme une valeur distincte à part entière.
groupByLimit Limite de sécurité pour éviter d'exploser la mémoire si votre group-by est sur une variable à très forte cardinalité (comme un identifiant client unique, oups !).
maxNVals Spécifie le nombre maximum de valeurs distinctes pris en compte pour arrêter de compter au-delà d'un certain seuil.
orderBy Permet de trier les valeurs des groupes dans le résultat (ordre ascendant).
orderByAgg Permet d'ordonner selon l'agrégation choisie (NDIST pour distinct, NMISS pour manquants, ou TRUNC).

Préparation des données

Création de la table de test Cars

Commençons par charger une table de données classique (sashelp.cars) en mémoire CAS pour jouer avec les valeurs distinctes.

1PROC CASUTIL;
2 load DATA=sashelp.cars casout="cars" outcaslib="casuser" replace;
3QUIT;

Exemples d'utilisation

Comptage simple des valeurs distinctes

Calculons le nombre de constructeurs (Make) et de types (Type) de véhicules distincts dans notre table.

1PROC CAS;
2 SIMPLE.distinct /
3 TABLE={name="cars", caslib="casuser"},
4 inputs={"Make", "Type"};
5QUIT;
Résultat Attendu :
Le journal et les résultats ODS affichent deux lignes : l'une pour 'Make' avec 38 valeurs distinctes, et l'autre pour 'Type' avec 6 valeurs distinctes.
Comptage distinct avec GroupBy et table en sortie

Soyons plus ambitieux ! Comptons le nombre de modèles distincts (Model) en regroupant par type de véhicule (Type). Nous incluons les valeurs manquantes dans le comptage et sauvegardons le tout dans une nouvelle table CAS.

1PROC CAS;
2 SIMPLE.distinct /
3 TABLE={name="cars", caslib="casuser", groupBy={"Type"}},
4 inputs={"Model"},
5 includeMissing=true,
6 casOut={name="distinct_models_by_type", caslib="casuser", replace=true};
7QUIT;
8/* Vérification des résultats sauvegardés */
9PROC CAS;
10 TABLE.fetch / TABLE={name="distinct_models_by_type", caslib="casuser"};
11QUIT;
Résultat Attendu :
L'action génère une table CAS nommée 'distinct_models_by_type' contenant le nombre de modèles distincts pour chaque type de voiture (Sedan, SUV, Sports, etc.), prête à être réutilisée dans de futures étapes.