Die Beispiele verwenden Daten, die aus der in der CAS-Sitzung geladenen SASHELP-Bibliothek (iris) generiert wurden.
1 Codeblock
PROC CARDINALITY / DATA STEP Data
Erklärung : Dieses Beispiel veranschaulicht die einfachste Verwendung von PROC CARDINALITY. Es lädt den Datensatz 'sashelp.iris' in eine CAS-Sitzung unter dem Namen 'mycas.iris'. Anschließend führt es die CARDINALITY-Prozedur für die Variable 'Species' aus, wodurch eine Kardinalitätstabelle ('outcard') und eine Tabelle mit Ebenendetails ('outdetails') generiert werden. Die Ergebnisse werden mit PROC PRINT angezeigt.
Kopiert!
CAS;
libname mycas cas;
/* Charger le jeu de données Iris de SASHELP vers la session CAS */
data mycas.iris;
set sashelp.iris;
run;
/* Exemple 1 : Utilisation Basique pour la variable Species */
proc cardinality data=mycas.iris outcard=mycas.card_species outdetails=mycas.details_species;
var Species;
run;
proc print data=mycas.card_species;
title 'Cardinalité basique pour la variable Species';
run;
proc print data=mycas.details_species;
title 'Détails des niveaux pour la variable Species';
run;
1
CAS;
2
LIBNAME mycas cas;
3
4
/* Charger le jeu de données Iris de SASHELP vers la session CAS */
5
DATA mycas.iris;
6
SET sashelp.iris;
7
RUN;
8
9
/* Exemple 1 : Utilisation Basique pour la variable Species */
title 'Cardinalité basique pour la variable Species';
16
RUN;
17
18
PROC PRINTDATA=mycas.details_species;
19
title 'Détails des niveaux pour la variable Species';
20
RUN;
2 Codeblock
PROC CARDINALITY / PROC SGPLOT
Erklärung : Dieses Beispiel demonstriert die Verwendung der Optionen 'MAXLEVELS', um die Anzahl der angezeigten detaillierten Ebenen zu begrenzen, und 'DESCENDING', um diese Ebenen nach Häufigkeit in absteigender Reihenfolge zu sortieren. Es generiert auch ein Histogramm, um die Verteilung der 10 häufigsten Ebenen von 'SepalLength' zu visualisieren.
Kopiert!
/* Exemple 2 : Utilisation avec des options courantes (MAXLEVELS et DESCENDING) */
/* Analyse de SepalLength avec un nombre limité de niveaux affichés et tri décroissant */
proc cardinality data=mycas.iris outcard=mycas.card_sepal_full outdetails=mycas.details_sepal_full maxlevels=10 descending;
var SepalLength;
run;
proc print data=mycas.card_sepal_full;
title 'Cardinalité complète pour SepalLength (10 niveaux max, ordre décroissant)';
run;
proc sgplot data=mycas.details_sepal_full;
vbar _cfmt_ / freq=_freq_ categoryorder=data;
title 'Histogramme des 10 niveaux les plus fréquents de SepalLength';
run;
1
/* Exemple 2 : Utilisation avec des options courantes (MAXLEVELS et DESCENDING) */
2
/* Analyse de SepalLength avec un nombre limité de niveaux affichés et tri décroissant */
title 'Cardinalité complète pour SepalLength (10 niveaux max, ordre décroissant)';
9
RUN;
10
11
PROC SGPLOTDATA=mycas.details_sepal_full;
12
vbar _cfmt_ / freq=_freq_ categoryorder=DATA;
13
title 'Histogramme des 10 niveaux les plus fréquents de SepalLength';
14
RUN;
3 Codeblock
PROC CARDINALITY / DATA STEP / PROC SGPLOT
Erklärung : Dieses Beispiel greift das Szenario des Dokuments auf und filtert die Daten, um nur Beobachtungen einzuschließen, bei denen 'SepalLength' größer als 4.7 ist. Die CARDINALITY-Prozedur wird mit 'MAXLEVELS=5' ausgeführt, was bedeutet, dass nur die 5 häufigsten Ebenen detailliert werden, während die anderen gruppiert werden. Ein DATA-Schritt wird verwendet, um die Ausgabedaten für PROC SGPLOT vorzubereiten, indem ein '>' vor die gruppierten Werte gesetzt wird, um sie zu unterscheiden. Schließlich wird ein Histogramm generiert und die Informationen zur maximalen Häufigkeit angezeigt.
Kopiert!
/* Exemple 3 : Cas Avancé - Analyse des niveaux de SepalLength > 4.7 et visualisation */
proc cardinality data=mycas.iris (where=(SepalLength > 4.7))
outcard=mycas.card_sepal_gt47
outdetails=mycas.details_sepal_gt47
maxlevels=5; /* Limite à 5 niveaux pour cet exemple */
var SepalLength;
run;
/* Préparation des données pour SGPLOT : ajoute '>' aux niveaux 'Autres' pour le graphique */
data mycas.sp_gt47;
set mycas.details_sepal_gt47;
label _cfmt_='Valeur formatée de SepalLength > 4.7';
if _index_ = . then do; /* Si _index_ est manquant, c'est la catégorie 'Autres' */
_cfmt_=cats(">",_cfmt_);
end;
_cfmt_=left(_cfmt_); /* Nettoie les espaces */
run;
proc sgplot data=mycas.sp_gt47;
vbar _cfmt_ / freq=_freq_;
title 'Histogramme des niveaux de SepalLength > 4.7';
run;
/* Affichage des informations de fréquence maximale pour ce cas */
proc print data=mycas.card_sepal_gt47;
title 'Informations de fréquence maximale pour SepalLength > 4.7';
var _varname_ _mf:;
run;
1
/* Exemple 3 : Cas Avancé - Analyse des niveaux de SepalLength > 4.7 et visualisation */
maxlevels=5; /* Limite à 5 niveaux pour cet exemple */
6
var SepalLength;
7
RUN;
8
9
/* Préparation des données pour SGPLOT : ajoute '>' aux niveaux 'Autres' pour le graphique */
10
DATA mycas.sp_gt47;
11
SET mycas.details_sepal_gt47;
12
label _cfmt_='Valeur formatée de SepalLength > 4.7';
13
IF _index_ = . THENDO; /* Si _index_ est manquant, c'est la catégorie 'Autres' */
14
_cfmt_=cats(">",_cfmt_);
15
END;
16
_cfmt_=left(_cfmt_); /* Nettoie les espaces */
17
RUN;
18
19
PROC SGPLOTDATA=mycas.sp_gt47;
20
vbar _cfmt_ / freq=_freq_;
21
title 'Histogramme des niveaux de SepalLength > 4.7';
22
RUN;
23
24
/* Affichage des informations de fréquence maximale pour ce cas */
25
PROC PRINTDATA=mycas.card_sepal_gt47;
26
title 'Informations de fréquence maximale pour SepalLength > 4.7';
27
var _varname_ _mf:;
28
RUN;
4 Codeblock
PROC CARDINALITY
Erklärung : Dieses Beispiel hebt die Fähigkeit der CARDINALITY-Prozedur hervor, auf CAS-Daten ausgeführt zu werden. Es analysiert die Kardinalität mehrerer Variablen gleichzeitig. Die Option 'OUTPUT' mit 'MINRATIO' wird verwendet, um Variablen zu identifizieren, deren Kardinalität (Anzahl der eindeutigen Ebenen) einen bestimmten Prozentsatz (hier 80%) der Gesamtzahl der Beobachtungen übersteigt, was nützlich sein kann, um Identifikatoren oder Variablen mit geringer Varianz zu erkennen.
Kopiert!
/* Exemple 4 : Intégration Viya/CAS - Analyse de plusieurs variables et détection de cardinalité */
/* Cet exemple illustre l'exécution en mémoire distribuée (CAS) */
proc cardinality data=mycas.iris outcard=mycas.multi_var_card maxlevels=10;
var SepalLength SepalWidth PetalLength PetalWidth Species;
output out=mycas.high_card_vars minratio=0.8; /* Garde les variables dont la cardinalité dépasse 80% des observations */
run;
proc print data=mycas.multi_var_card;
title 'Cardinalité pour plusieurs variables';
run;
proc print data=mycas.high_card_vars;
title 'Variables avec une cardinalité supérieure à 80% des observations';
run;
1
/* Exemple 4 : Intégration Viya/CAS - Analyse de plusieurs variables et détection de cardinalité */
2
/* Cet exemple illustre l'exécution en mémoire distribuée (CAS) */
var SepalLength SepalWidth PetalLength PetalWidth Species;
5
OUTPUT out=mycas.high_card_vars minratio=0.8; /* Garde les variables dont la cardinalité dépasse 80% des observations */
6
RUN;
7
8
PROC PRINTDATA=mycas.multi_var_card;
9
title 'Cardinalité pour plusieurs variables';
10
RUN;
11
12
PROC PRINTDATA=mycas.high_card_vars;
13
title 'Variables avec une cardinalité supérieure à 80% des observations';
14
RUN;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.