distinct
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 .
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.
| 1 | PROC CASUTIL; |
| 2 | load DATA=sashelp.cars casout="cars" outcaslib="casuser" replace; |
| 3 | QUIT; |
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.
| 1 | PROC CAS; |
| 2 | SIMPLE.distinct / |
| 3 | TABLE={name="cars", caslib="casuser"}, |
| 4 | inputs={"Make", "Type"}; |
| 5 | QUIT; |
Résultat Attendu :
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.
| 1 | PROC 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}; |
| 7 | QUIT; |
| 8 | /* Vérification des résultats sauvegardés */ |
| 9 | PROC CAS; |
| 10 | TABLE.fetch / TABLE={name="distinct_models_by_type", caslib="casuser"}; |
| 11 | QUIT; |