Veröffentlicht am :
DATA Step CREATION_INTERNE

Eine DATA Step View erstellen

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Eine DATA Step View kann aus einer CAS-Tabelle erstellt werden, indem der DATA Step lokal in einer Base SAS©-Sitzung und nicht in einer CAS-Server-Sitzung ausgeführt wird. Views müssen in einer Base SAS©-Bibliothek (erstellt mit der V9-Engine) gespeichert werden. Obwohl der in CAS ausgeführte DATA Step die Option VIEW= nicht unterstützt, kann eine SAS© View unter Verwendung eines in SAS© ausgeführten DATA Steps erstellt werden, der eine CAS-Tabelle als Eingabe verwendet. Views können VARCHAR-Variablen enthalten und Werte dieser Variablen aus SAS© Views lesen. Der DATA Step kann jedoch VARCHAR-Variablen, die in CAS-Tabellen oder anderen Datenquellen enthalten sind, nicht direkt lesen, ohne eine View zu verwenden. Eine DATA Step View kann VARCHAR-Variablen enthalten, ein SAS©-Datensatz jedoch nicht direkt. Schließlich können Views auf in Nicht-Base-Bibliotheken (einschließlich CAS) gespeicherte Datensätze zugreifen, aber Aktualisierungs-Views werden nicht unterstützt.
Datenanalyse

Type : CREATION_INTERNE


Die Beispiele verwenden generierte Daten (datalines) oder direkt in CAS erstellte Tabellen, um ihre Autonomie zu gewährleisten.

1 Codeblock
DATA STEP Data
Erklärung :
Dieses Beispiel zeigt die Erstellung einer einfachen DATA Step View 'MaVueBasique'. Zuerst wird ein Quelldatensatz 'MonJeuDeDonnees' mit Datalines erstellt. Anschließend verwendet der DATA Step die Option VIEW=, um eine View zu definieren, die das Geburtsjahr basierend auf dem Alter berechnet. Für 'MaVueBasique' wird keine physische Tabelle erstellt, sondern nur ihr Deskriptor gespeichert. Die Prozeduren PROC PRINT und PROC CONTENTS werden verwendet, um den Inhalt und die Struktur der View anzuzeigen.
Kopiert!
1DATA MonJeuDeDonnees;
2 INPUT ID Nom $ Age;
3 DATALINES;
41 Jean 25
52 Marie 30
63 Pierre 22
7;
8RUN;
9 
10DATA MaVueBasique / view=MaVueBasique;
11 SET MonJeuDeDonnees;
12 AnneeNaissance = 2025 - Age;
13RUN;
14 
15PROC PRINT DATA=MaVueBasique; RUN;
16PROC CONTENTS DATA=MaVueBasique; RUN;
2 Codeblock
DATA STEP Data
Erklärung :
Dieses Beispiel erstellt eine DATA Step View namens 'VueIMC', die komplexere Berechnungen durchführt und eine Formatierung anwendet. Nach der Erstellung eines Datensatzes 'Patients' berechnet der DATA Step den Body-Mass-Index (BMI) und erstellt eine Variable 'Statut' basierend auf dem Geschlecht. Die BMI-Variable wird so formatiert, dass nur eine Dezimalstelle angezeigt wird. Dies veranschaulicht, wie Views Transformations- und Formatierungslogiken integrieren können, ohne die transformierten Daten zu materialisieren.
Kopiert!
1DATA Patients;
2 INPUT PatientID Genre $ Poids Taille;
3 DATALINES;
41 H 70 175
52 F 60 160
63 H 85 180
74 F 55 165
8;
9RUN;
10 
11DATA VueIMC / view=VueIMC;
12 SET Patients;
13 IMC = Poids / (Taille/100)**2;
14 FORMAT IMC 5.1;
15 IF Genre = 'F' THEN Statut = 'Femme';
16 ELSE Statut = 'Homme';
17 LENGTH Statut $ 5;
18RUN;
19 
20PROC PRINT DATA=VueIMC; RUN;
3 Codeblock
DATA STEP, PROC CAS, PROC CONTENTS Data
Erklärung :
Dieses fortgeschrittene Beispiel zeigt, wie eine DATA Step View mit einer CAS-Tabelle interagiert, die VARCHAR-Variablen enthält. Zuerst wird eine CAS-Tabelle 'MaTableCAS' erstellt und mit Daten geladen, die eine Spalte 'Description' vom Typ VARCHAR enthalten. Anschließend wird eine DATA Step View 'VueCasVARCHAR' aus dieser CAS-Tabelle definiert. Diese View berechnet die Länge der VARCHAR-Variablen. Dieses Beispiel ist entscheidend, da es zeigt, dass, obwohl CAS-Tabellen VARCHARs verwalten, eine DATA Step View diese effizient lesen und manipulieren kann, auch wenn der DATA Step lokal mit einer entfernten CAS-Tabelle als Eingabe ausgeführt wird.
Kopiert!
1LIBNAME mycas cas;
2 
3DATA _null_;
4 file _webout;
5 put '{ "casServer": { "server": "cas-shared-default", "port": 80 } }';
6RUN;
7 
8PROC CAS;
9 SESSION casauto;
10 TABLE.droptable / caslib='casuser' name='MaTableCAS' quiet=true;
11 DATA = {{name='ID', type='double', LENGTH=8},
12 {name='Description', type='varchar', LENGTH=50}};
13 TABLE.addtable / caslib='casuser' name='MaTableCAS' promote=true
14 columns=DATA;
15 DATA.appendtable / caslib='casuser' target='MaTableCAS'
16 casdata={{ID=1, Description='Premier article'},
17 {ID=2, Description='Deuxième article plus long'},
18 {ID=3, Description='Troisième'}};
19 PRINT 'Table CAS MaTableCAS créée avec VARCHAR.';
20QUIT;
21 
22DATA VueCasVARCHAR / view=VueCasVARCHAR;
23 SET mycas.MaTableCAS;
24 LongueurDescription = LENGTH(Description);
25RUN;
26 
27PROC PRINT DATA=VueCasVARCHAR; RUN;
28PROC CONTENTS DATA=VueCasVARCHAR; RUN;
4 Codeblock
DATA STEP, PROC CAS Data
Erklärung :
Dieses Beispiel veranschaulicht eine erweiterte Funktion von DATA Step Views: das Verknüpfen mehrerer CAS-Tabellen und das Filtern der Ergebnisse. Zuerst werden zwei CAS-Tabellen, 'Employes' und 'Projets', erstellt und geladen. Anschließend wird eine DATA Step View 'VueRHProjets' definiert, indem diese beiden Tabellen über die MERGE-Anweisung und die Variable 'EmpID' für die Verknüpfung (BY EmpID) zusammengeführt werden. Ein Filter (WHERE Departement = 'RH') wird angewendet, um nur Mitarbeiter der Personalabteilung einzubeziehen, und nur die relevanten Spalten werden beibehalten. Dies zeigt die Leistungsfähigkeit von Views, um komplexe Datenaggregationen oder -untergruppen zu erstellen, ohne neue physische Tabellen zu generieren, wodurch die Ressourcennutzung im CAS-Speicher optimiert wird.
Kopiert!
1LIBNAME mycas cas;
2 
3PROC CAS;
4 SESSION casauto;
5 TABLE.droptable / caslib='casuser' name='Employes' quiet=true;
6 DATA Employes;
7 INPUT EmpID Nom $ Departement $ Salaire;
8 DATALINES;
9 101 Jean RH 50000
10 102 Marie IT 60000
11 103 Pierre RH 55000
12 104 Sophie IT 62000
13 ;
14 RUN;
15 TABLE.addtable / caslib='casuser' name='Employes' promote=true;
16 
17 TABLE.droptable / caslib='casuser' name='Projets' quiet=true;
18 DATA Projets;
19 INPUT ProjectID EmpID $ NomProjet $;
20 DATALINES;
21 P1 101 ProjetX
22 P2 102 ProjetY
23 P3 101 ProjetZ
24 ;
25 RUN;
26 TABLE.addtable / caslib='casuser' name='Projets' promote=true;
27 PRINT 'Tables CAS Employes et Projets créées.';
28QUIT;
29 
30DATA VueRHProjets / view=VueRHProjets;
31 MERGE Employes (in=e) Projets (in=p);
32 BY EmpID;
33 IF e and p;
34 where Departement = 'RH';
35 keep EmpID Nom NomProjet Salaire;
36RUN;
37 
38PROC PRINT DATA=VueRHProjets; 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.
Urheberrechtsinformationen : Copyright © SAS Institute Inc. All Rights Reserved.