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!
data MonJeuDeDonnees;
input ID Nom $ Age;
datalines;
1 Jean 25
2 Marie 30
3 Pierre 22
;
run;
data MaVueBasique / view=MaVueBasique;
set MonJeuDeDonnees;
AnneeNaissance = 2025 - Age;
run;
proc print data=MaVueBasique; run;
proc contents data=MaVueBasique; run;
1
DATA MonJeuDeDonnees;
2
INPUT ID Nom $ Age;
3
DATALINES;
4
1 Jean 25
5
2 Marie 30
6
3 Pierre 22
7
;
8
RUN;
9
10
DATA MaVueBasique / view=MaVueBasique;
11
SET MonJeuDeDonnees;
12
AnneeNaissance = 2025 - Age;
13
RUN;
14
15
PROC PRINTDATA=MaVueBasique; RUN;
16
PROC CONTENTSDATA=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!
data Patients;
input PatientID Genre $ Poids Taille;
datalines;
1 H 70 175
2 F 60 160
3 H 85 180
4 F 55 165
;
run;
data VueIMC / view=VueIMC;
set Patients;
IMC = Poids / (Taille/100)**2;
format IMC 5.1;
if Genre = 'F' then Statut = 'Femme';
else Statut = 'Homme';
length Statut $ 5;
run;
proc print data=VueIMC; run;
1
DATA Patients;
2
INPUT PatientID Genre $ Poids Taille;
3
DATALINES;
4
1 H 70175
5
2 F 60160
6
3 H 85180
7
4 F 55165
8
;
9
RUN;
10
11
DATA 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;
18
RUN;
19
20
PROC PRINTDATA=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.
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!
libname mycas cas;
proc cas;
session casauto;
table.droptable / caslib='casuser' name='Employes' quiet=true;
data Employes;
input EmpID Nom $ Departement $ Salaire;
datalines;
101 Jean RH 50000
102 Marie IT 60000
103 Pierre RH 55000
104 Sophie IT 62000
;
run;
table.addtable / caslib='casuser' name='Employes' promote=true;
table.droptable / caslib='casuser' name='Projets' quiet=true;
data Projets;
input ProjectID EmpID $ NomProjet $;
datalines;
P1 101 ProjetX
P2 102 ProjetY
P3 101 ProjetZ
;
run;
table.addtable / caslib='casuser' name='Projets' promote=true;
print 'Tables CAS Employes et Projets créées.';
quit;
data VueRHProjets / view=VueRHProjets;
merge Employes (in=e) Projets (in=p);
by EmpID;
if e and p;
where Departement = 'RH';
keep EmpID Nom NomProjet Salaire;
run;
proc 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.
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.