Les exemples utilisent des données générées (datalines) ou des tables créées directement dans CAS pour assurer leur autonomie.
1 Bloc de code
DATA STEP Data
Explication : Cet exemple démontre la création d'une vue DATA Step simple 'MaVueBasique'. Un jeu de données source 'MonJeuDeDonnees' est d'abord créé avec des datalines. Ensuite, l'étape DATA utilise l'option VIEW= pour définir une vue qui calcule l'année de naissance basée sur l'âge. Aucune table physique n'est créée pour 'MaVueBasique', seul son descripteur est stocké. Les procédures PROC PRINT et PROC CONTENTS sont utilisées pour visualiser le contenu et la structure de la vue.
Copié !
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 Bloc de code
DATA STEP Data
Explication : Cet exemple crée une vue DATA Step nommée 'VueIMC' qui effectue des calculs plus élaborés et applique un formatage. Après la création d'un jeu de données 'Patients', l'étape DATA calcule l'Indice de Masse Corporelle (IMC) et crée une variable 'Statut' basée sur le genre. La variable IMC est formatée pour n'afficher qu'une décimale. Ceci illustre comment les vues peuvent incorporer des logiques de transformation et de mise en forme sans matérialiser les données transformées.
Copié !
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;
Résultat Visuel
3 Bloc de code
DATA STEP, PROC CAS, PROC CONTENTS Data
Explication : Cet exemple avancé montre comment une vue DATA Step interagit avec une table CAS contenant des variables VARCHAR. D'abord, une table CAS 'MaTableCAS' est créée et chargée avec des données incluant une colonne 'Description' de type VARCHAR. Ensuite, une vue DATA Step 'VueCasVARCHAR' est définie à partir de cette table CAS. Cette vue calcule la longueur de la variable VARCHAR. Cet exemple est crucial car il démontre que, bien que les tables CAS gèrent les VARCHAR, une vue DATA Step peut les lire et les manipuler efficacement, y compris lorsque le DATA Step s'exécute en local avec une table distante CAS en entrée.
Explication : Cet exemple illustre une capacité avancée des vues DATA Step : la jointure de plusieurs tables CAS et le filtrage des résultats. Deux tables CAS, 'Employes' et 'Projets', sont d'abord créées et chargées. Ensuite, une vue DATA Step 'VueRHProjets' est définie en fusionnant ces deux tables via l'instruction MERGE et en utilisant la variable 'EmpID' pour la jointure (BY EmpID). Un filtre (WHERE Departement = 'RH') est appliqué pour n'inclure que les employés du département des ressources humaines, et seules les colonnes pertinentes sont conservées. Cela montre la puissance des vues pour créer des agrégations ou des sous-ensembles de données complexes sans générer de nouvelles tables physiques, optimisant ainsi l'utilisation des ressources en mémoire CAS.
Copié !
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;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
« Utilisez cette méthode pour préparer vos données avant un rapport ou un export complexe. Gardez toutefois en tête que le traitement n'étant pas distribué sur tous les nœuds CAS, les performances dépendront de la puissance de votre session SAS local »
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.