Los ejemplos utilizan datos generados a través de DATALINES o conjuntos de datos SASHELP, lo que garantiza la autonomía de cada script.
1 Bloque de código
DATA STEP
Explicación : Este ejemplo ilustra el uso básico de la instrucción `KEEP` en un paso `DATA` que se ejecuta en CAS. Primero carga el conjunto de datos `sashelp.cars` en la biblioteca `mycas` (ubicada en CAS), luego crea un nuevo conjunto de datos `mycas.bigcars`. La cláusula `WHERE=(Weight > 6000)` se aplica al conjunto de datos de entrada (`mycas.cars`) para filtrar las observaciones, y la instrucción `KEEP Make Model Type;` garantiza que solo las variables 'Make', 'Model' y 'Type' se incluyan en `mycas.bigcars`. La tabla se muestra y se limpia a continuación.
¡Copiado!
libname mycas cas;
/* Charger l'ensemble de données Sashelp.Cars dans CAS */
data mycas.cars;
set sashelp.cars;
run;
/* Filtrer les voitures de gros poids et conserver un sous-ensemble de variables */
data mycas.bigcars;
set mycas.cars(where=(Weight > 6000));
keep Make Model Type;
run;
/* Afficher le résultat */
proc print data=mycas.bigcars;
run;
/* Nettoyer les tables CAS temporaires */
proc cas;
table.dropTable / caslib='CASUSER' name='cars';
table.dropTable / caslib='CASUSER' name='bigcars';
run;
quit;
1
LIBNAME mycas cas;
2
3
/* Charger l'ensemble de données Sashelp.Cars dans CAS */
4
DATA mycas.cars;
5
SET sashelp.cars;
6
RUN;
7
8
/* Filtrer les voitures de gros poids et conserver un sous-ensemble de variables */
Explicación : Este ejemplo muestra un uso intermedio de `KEEP` con una pequeña transformación. Se crea una tabla `mycas.produits` directamente en CAS utilizando `DATALINES`. Un segundo paso `DATA` calcula `TotalValeur` para cada producto (`Prix * Quantite`), y luego la instrucción `KEEP` se utiliza para conservar solo las variables 'Produit', 'Prix', 'Quantite' y la nueva variable calculada 'TotalValeur'. La tabla se muestra y se limpia a continuación.
¡Copiado!
libname mycas cas;
/* Création d'une table CAS simple avec DATALINES */
data mycas.produits;
input ID Produit $ Prix Quantite;
datalines;
1 Ordinateur 1200 5
2 Souris 25 50
3 Clavier 75 30
4 Ecran 300 10
5 Imprimante 150 15
;
run;
/* Calculer la valeur totale et conserver les variables pertinentes */
data mycas.stock_valeur;
set mycas.produits;
TotalValeur = Prix * Quantite;
keep Produit Prix Quantite TotalValeur;
run;
/* Afficher le résultat */
proc print data=mycas.stock_valeur;
run;
/* Nettoyer les tables CAS temporaires */
proc cas;
table.dropTable / caslib='CASUSER' name='produits';
table.dropTable / caslib='CASUSER' name='stock_valeur';
run;
quit;
1
LIBNAME mycas cas;
2
3
/* Création d'une table CAS simple avec DATALINES */
4
DATA mycas.produits;
5
INPUT ID Produit $ Prix Quantite;
6
DATALINES;
7
1 Ordinateur 12005
8
2 Souris 2550
9
3 Clavier 7530
10
4 Ecran 30010
11
5 Imprimante 15015
12
;
13
RUN;
14
15
/* Calculer la valeur totale et conserver les variables pertinentes */
Explicación : Este ejemplo explora un caso más avanzado de la instrucción `KEEP` con lógica condicional. Carga `sashelp.class` en CAS. Luego, intenta conservar diferentes variables según el sexo del estudiante. Si el sexo es 'M', solo se conservan 'Name' y 'Age'; de lo contrario, se conservan 'Name', 'Height' y 'Weight'. Aunque `KEEP` en un bloque `DO` puede tener un comportamiento sutil (solo las variables nombradas explícitamente en un `KEEP` o `DROP` global se consideran inicialmente, y las demás se gestionan por el alcance), la intención aquí es mostrar un intento de selección dinámica. Para una mayor robustez en escenarios de salida heterogéneos, serían preferibles enfoques con `DROP` o `RENAME` combinados con lógicas más explícitas. La tabla se muestra y se limpia a continuación.
¡Copiado!
libname mycas cas;
/* Charger l'ensemble de données Sashelp.Class dans CAS */
data mycas.etudiants;
set sashelp.class;
run;
/* Conserver différentes variables selon une condition */
data mycas.resultat_etudiants;
set mycas.etudiants;
if Sex = 'M' then do;
keep Name Age;
end;
else do;
keep Name Height Weight;
end;
run;
/* Afficher le résultat (Note: le comportement de KEEP dans les blocs conditionnels peut être complexe.
SAS s'attend à ce que toutes les variables 'kept' soient définies globalement ou que le comportement
soit géré par des instructions 'DROP' pour être plus explicite. Cet exemple est simplifié pour illustrer.
Dans un cas réel, une approche avec DROP/RENAME serait plus robuste pour des sorties hétérogènes.) */
proc print data=mycas.resultat_etudiants;
run;
/* Nettoyer les tables CAS temporaires */
proc cas;
table.dropTable / caslib='CASUSER' name='etudiants';
table.dropTable / caslib='CASUSER' name='resultat_etudiants';
run;
quit;
1
LIBNAME mycas cas;
2
3
/* Charger l'ensemble de données Sashelp.Class dans CAS */
4
DATA mycas.etudiants;
5
SET sashelp.class;
6
RUN;
7
8
/* Conserver différentes variables selon une condition */
9
DATA mycas.resultat_etudiants;
10
SET mycas.etudiants;
11
IF Sex = 'M'THENDO;
12
keep Name Age;
13
END;
14
ELSEDO;
15
keep Name Height Weight;
16
END;
17
RUN;
18
19
/* Afficher le résultat (Note: le comportement de KEEP dans les blocs conditionnels peut être complexe.
20
SAS s'attend à ce que toutes les variables 'kept' soient définies globalement ou que le comportement
21
soit géré par des instructions 'DROP' pour être plus explicite. Cet exemple est simplifié pour illustrer.
22
Dans un cas réel, une approche avec DROP/RENAME serait plus robuste pour des sorties hétérogènes.) */
Explicación : Este ejemplo ilustra el uso de `KEEP` en un paso `DATA` que se ejecuta completamente en el entorno de Cloud Analytic Services (CAS). Se crea una tabla `mycas.vente_regionale` directamente en CAS a partir de datos en línea (`DATALINES`). La opción `promote=yes` asegura que esta tabla se haga persistente dentro de la sesión CAS. Un segundo paso `DATA` procesa esta tabla CAS, aplicando un filtro (`WHERE=(Revenu > 50000)`) al conjunto de datos de entrada CAS y utilizando la instrucción `KEEP` para seleccionar específicamente las variables 'Region', 'Produit' y 'Revenu' para la tabla de salida `mycas.vente_details_filtre`, que también es una tabla CAS. Esto demuestra el procesamiento en memoria distribuida y la selección de variables a través de `KEEP` en un contexto CAS nativo. Las tablas se muestran y se limpian a continuación.
¡Copiado!
libname mycas cas;
/* Création d'une table CAS simple directement dans CAS à partir de DATALINES */
/* Cela garantit que la table est nativement CAS pour l'exemple. */
data mycas.vente_regionale (promote=yes); /* promote=yes rend la table persistante dans la session CAS */
input Region $ Produit $ UnitesVendues Revenu;
datalines;
Nord Ordinateur 100 120000
Sud Souris 250 6250
Est Clavier 150 11250
Ouest Ecran 50 15000
Nord Imprimante 75 11250
Sud Ordinateur 80 96000
;
run;
/* Traiter la table CAS avec l'étape DATA CAS, filtrer et conserver des variables */
/* L'étape DATA s'exécute sur CAS car l'entrée et la sortie sont des tables CAS. */
data mycas.vente_details_filtre;
set mycas.vente_regionale (where=(Revenu > 50000)); /* Filtrage sur la table CAS */
keep Region Produit Revenu; /* Conserver seulement ces variables */
run;
/* Afficher le résultat de la table traitée sur CAS */
proc print data=mycas.vente_details_filtre;
run;
/* Nettoyer les tables CAS temporaires de la session */
proc cas;
session casauto;
table.dropTable / caslib='CASUSER' name='vente_regionale';
table.dropTable / caslib='CASUSER' name='vente_details_filtre';
run;
quit;
1
LIBNAME mycas cas;
2
3
/* Création d'une table CAS simple directement dans CAS à partir de DATALINES */
4
/* Cela garantit que la table est nativement CAS pour l'exemple. */
5
DATA mycas.vente_regionale (promote=yes); /* promote=yes rend la table persistante dans la session CAS */
6
INPUT Region $ Produit $ UnitesVendues Revenu;
7
DATALINES;
8
Nord Ordinateur 100120000
9
Sud Souris 2506250
10
Est Clavier 15011250
11
Ouest Ecran 5015000
12
Nord Imprimante 7511250
13
Sud Ordinateur 8096000
14
;
15
RUN;
16
17
/* Traiter la table CAS avec l'étape DATA CAS, filtrer et conserver des variables */
18
/* L'étape DATA s'exécute sur CAS car l'entrée et la sortie sont des tables CAS. */
19
DATA mycas.vente_details_filtre;
20
SET mycas.vente_regionale (where=(Revenu > 50000)); /* Filtrage sur la table CAS */
21
keep Region Produit Revenu; /* Conserver seulement ces variables */
22
RUN;
23
24
/* Afficher le résultat de la table traitée sur CAS */
25
PROC PRINTDATA=mycas.vente_details_filtre;
26
RUN;
27
28
/* Nettoyer les tables CAS temporaires de la session */
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.