Los ejemplos utilizan datos generados (datalines) o tablas creadas directamente en CAS para asegurar su autonomía.
1 Bloque de código
DATA STEP Data
Explicación : Este ejemplo demuestra la creación de una vista DATA Step simple 'MaVueBasique'. Primero se crea un conjunto de datos fuente 'MonJeuDeDonnees' con datalines. Luego, el paso DATA utiliza la opción VIEW= para definir una vista que calcula el año de nacimiento basado en la edad. No se crea ninguna tabla física para 'MaVueBasique', solo se almacena su descriptor. Se utilizan los procedimientos PROC PRINT y PROC CONTENTS para visualizar el contenido y la estructura de la vista.
¡Copiado!
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 Bloque de código
DATA STEP Data
Explicación : Este ejemplo crea una vista DATA Step llamada 'VueIMC' que realiza cálculos más elaborados y aplica un formato. Después de crear un conjunto de datos 'Patients', el paso DATA calcula el Índice de Masa Corporal (IMC) y crea una variable 'Statut' basada en el género. La variable IMC se formatea para mostrar solo un decimal. Esto ilustra cómo las vistas pueden incorporar lógicas de transformación y formato sin materializar los datos transformados.
¡Copiado!
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 Bloque de código
DATA STEP, PROC CAS, PROC CONTENTS Data
Explicación : Este ejemplo avanzado muestra cómo una vista DATA Step interactúa con una tabla CAS que contiene variables VARCHAR. Primero, se crea y carga una tabla CAS 'MaTableCAS' con datos que incluyen una columna 'Description' de tipo VARCHAR. Luego, se define una vista DATA Step 'VueCasVARCHAR' a partir de esta tabla CAS. Esta vista calcula la longitud de la variable VARCHAR. Este ejemplo es crucial porque demuestra que, aunque las tablas CAS manejan VARCHAR, una vista DATA Step puede leerlas y manipularlas de manera eficiente, incluso cuando el paso DATA se ejecuta localmente con una tabla CAS remota como entrada.
Explicación : Este ejemplo ilustra una capacidad avanzada de las vistas DATA Step: la unión de múltiples tablas CAS y el filtrado de resultados. Primero se crean y cargan dos tablas CAS, 'Employes' y 'Projets'. Luego, se define una vista DATA Step 'VueRHProjets' fusionando estas dos tablas mediante la instrucción MERGE y utilizando la variable 'EmpID' para la unión (BY EmpID). Se aplica un filtro (WHERE Departement = 'RH') para incluir solo a los empleados del departamento de recursos humanos, y solo se conservan las columnas relevantes. Esto demuestra el poder de las vistas para crear agregaciones o subconjuntos de datos complejos sin generar nuevas tablas físicas, optimizando así el uso de los recursos en la memoria CAS.
¡Copiado!
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;
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.