Los ejemplos utilizan datos generados a partir de la librería SASHELP (iris) cargada en sesión CAS.
1 Bloque de código
PROC CARDINALITY / DATA STEP Data
Explicación : Este ejemplo ilustra el uso más simple de PROC CARDINALITY. Carga el conjunto de datos 'sashelp.iris' en una sesión CAS bajo el nombre 'mycas.iris'. Luego, ejecuta el procedimiento CARDINALITY para la variable 'Species', generando una tabla de cardinalidad ('outcard') y una tabla de detalles de los niveles ('outdetails'). Los resultados se muestran utilizando PROC PRINT.
¡Copiado!
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 Bloque de código
PROC CARDINALITY / PROC SGPLOT
Explicación : Este ejemplo demuestra el uso de las opciones 'MAXLEVELS' para limitar el número de niveles detallados mostrados y 'DESCENDING' para ordenar estos niveles por frecuencia de forma descendente. También genera un histograma para visualizar la distribución de los 10 niveles más frecuentes de 'SepalLength'.
¡Copiado!
/* 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 Bloque de código
PROC CARDINALITY / DATA STEP / PROC SGPLOT
Explicación : Este ejemplo retoma el escenario del documento, filtrando los datos para incluir solo las observaciones donde 'SepalLength' es mayor que 4.7. El procedimiento CARDINALITY se ejecuta con 'MAXLEVELS=5', lo que significa que solo se detallarán los 5 niveles más frecuentes, agrupándose los demás. Se utiliza un paso DATA para preparar los datos de salida para PROC SGPLOT, agregando un '>' delante de los valores agrupados para distinguirlos. Finalmente, se genera un histograma y se muestra la información de frecuencia máxima.
¡Copiado!
/* 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 Bloque de código
PROC CARDINALITY
Explicación : Este ejemplo destaca la capacidad del procedimiento CARDINALITY para ejecutarse en datos CAS. Analiza la cardinalidad de varias variables simultáneamente. La opción 'OUTPUT' con 'MINRATIO' se utiliza para identificar variables cuya cardinalidad (número de niveles distintos) excede un cierto porcentaje (aquí, 80%) del número total de observaciones, lo que puede ser útil para detectar identificadores o variables de baja varianza.
¡Copiado!
/* 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;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.