Die Beispiele verwenden Daten, die über DATALINES oder SASHELP-Datasets generiert wurden, um die Autonomie jedes Skripts zu gewährleisten.
1 Codeblock
DATA STEP
Erklärung : Dieses Beispiel veranschaulicht die grundlegende Verwendung der `KEEP`-Anweisung in einem `DATA`-Schritt, der auf CAS ausgeführt wird. Es lädt zuerst das Dataset `sashelp.cars` in die Bibliothek `mycas` (auf CAS), erstellt dann ein neues Dataset `mycas.bigcars`. Die Klausel `WHERE=(Weight > 6000)` wird auf das Eingabedataset (`mycas.cars`) angewendet, um die Beobachtungen zu filtern, und die Anweisung `KEEP Make Model Type;` stellt sicher, dass nur die Variablen 'Make', 'Model' und 'Type' in `mycas.bigcars` enthalten sind. Die Tabelle wird dann angezeigt und bereinigt.
Kopiert!
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 */
Erklärung : Dieses Beispiel zeigt eine Zwischenverwendung von `KEEP` mit einer kleinen Transformation. Eine Tabelle `mycas.produits` wird direkt auf CAS mithilfe von `DATALINES` erstellt. Ein zweiter `DATA`-Schritt berechnet `TotalValeur` für jedes Produkt (`Preis * Menge`), und dann wird die `KEEP`-Anweisung verwendet, um nur die Variablen 'Produit', 'Prix', 'Quantite' und die neu berechnete Variable 'TotalValeur' beizubehalten. Die Tabelle wird dann angezeigt und bereinigt.
Kopiert!
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 */
Erklärung : Dieses Beispiel untersucht einen fortgeschritteneren Fall der `KEEP`-Anweisung mit bedingter Logik. Es lädt `sashelp.class` auf CAS. Anschließend wird versucht, verschiedene Variablen basierend auf dem Geschlecht des Schülers beizubehalten. Wenn das Geschlecht 'M' ist, werden nur 'Name' und 'Age' beibehalten; andernfalls 'Name', 'Height' und 'Weight'. Obwohl `KEEP` in einem `DO`-Block ein subtiles Verhalten aufweisen kann (nur Variablen, die explizit in einem globalen `KEEP` oder `DROP` benannt sind, werden zunächst berücksichtigt, und andere werden vom Geltungsbereich verwaltet), soll hier ein Versuch der dynamischen Auswahl gezeigt werden. Für erhöhte Robustheit in heterogenen Ausgabeszenarien wären Ansätze mit `DROP` oder `RENAME` in Kombination mit expliziteren Logiken vorzuziehen. Die Tabelle wird dann angezeigt und bereinigt.
Kopiert!
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.) */
Erklärung : Dieses Beispiel veranschaulicht die Verwendung von `KEEP` in einem `DATA`-Schritt, der vollständig in der Cloud Analytic Services (CAS)-Umgebung ausgeführt wird. Eine Tabelle `mycas.vente_regionale` wird direkt auf CAS aus Inline-Daten (`DATALINES`) erstellt. Die Option `promote=yes` stellt sicher, dass diese Tabelle innerhalb der CAS-Sitzung persistent gemacht wird. Ein zweiter `DATA`-Schritt verarbeitet diese CAS-Tabelle, indem er einen Filter (`WHERE=(Revenu > 50000)`) auf das CAS-Eingabedataset anwendet und die `KEEP`-Anweisung verwendet, um speziell die Variablen 'Region', 'Produit' und 'Revenu' für die Ausgabetabelle `mycas.vente_details_filtre` auszuwählen, die ebenfalls eine CAS-Tabelle ist. Dies demonstriert die verteilte Speicherverarbeitung und die Variablenauswahl über `KEEP` in einem nativen CAS-Kontext. Die Tabellen werden dann angezeigt und bereinigt.
Kopiert!
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 */
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.