Los ejemplos utilizan datos generados (datalines) o conjuntos de datos de la biblioteca SASHELP, garantizando su autonomía.
1 Bloque de código
DATA STEP / PROC CASUTIL Data
Explicación : Este ejemplo ilustra la carga más sencilla de un conjunto de datos SAS (aquí, 'sample_data' creado a partir de SASHELP.CLASS) en CAS. El conjunto de datos se crea primero en la biblioteca 'work' de SAS. Luego, se utiliza PROC CASUTIL para cargar 'sample_data' en CAS con el nombre 'sample_data_cas' en la caslib 'CASUSER' por defecto, reemplazando cualquier tabla existente con el mismo nombre. Se incluye un paso de verificación a través de una acción CAS `table.tableinfo`.
¡Copiado!
libname mycas cas;
/* Crée un jeu de données SAS dans la bibliothèque WORK */
data work.sample_data;
set sashelp.class;
keep name sex age;
run;
/* Charge le jeu de données SAS dans CAS (caslib par défaut: CASUSER) */
proc casutil;
load casdata="sample_data" casout="sample_data_cas" replace;
run;
/* Vérifie la table chargée dans CAS */
proc cas;
table.tableinfo result=info / name="sample_data_cas" caslib="CASUSER";
print info;
quit;
1
LIBNAME mycas cas;
2
3
/* Crée un jeu de données SAS dans la bibliothèque WORK */
4
DATA work.sample_data;
5
SET sashelp.class;
6
keep name sex age;
7
RUN;
8
9
/* Charge le jeu de données SAS dans CAS (caslib par défaut: CASUSER) */
Explicación : Este ejemplo muestra cómo usar opciones comunes durante la carga. Se crea un conjunto de datos 'orders_local' con datos en línea. Luego se carga en la caslib 'CASUSER'. La opción `PROMOTE` se utiliza para hacer que la tabla 'orders_cas' sea globalmente accesible en la sesión CAS, lo que significa que otros usuarios o sesiones podrán acceder a ella si los permisos lo permiten. `REPLACE` asegura que si la tabla ya existe, será sobrescrita.
¡Copiado!
libname mycas cas;
/* Création d'un jeu de données SAS local à charger */
data work.orders_local;
input OrderID Customer $ Amount;
datalines;
1001 Alice 250.00
1002 Bob 120.50
1003 Alice 300.00
1004 Charlie 80.25
;
run;
/* Charge le jeu de données SAS dans une caslib spécifique et le promeut */
proc casutil;
load casdata="orders_local" casout="orders_cas" caslib="CASUSER" promote replace;
run;
/* Vérification de la table promue dans CAS */
proc cas;
table.tableinfo result=info / name="orders_cas" caslib="CASUSER";
print info;
quit;
1
LIBNAME mycas cas;
2
3
/* Création d'un jeu de données SAS local à charger */
4
DATA work.orders_local;
5
INPUT OrderID Customer $ Amount;
6
DATALINES;
7
1001 Alice 250.00
8
1002 Bob 120.50
9
1003 Alice 300.00
10
1004 Charlie 80.25
11
;
12
RUN;
13
14
/* Charge le jeu de données SAS dans une caslib spécifique et le promeut */
Explicación : Este ejemplo avanzado ilustra un escenario donde los datos se preparan y enriquecen antes de cargarlos en CAS. Se define un formato SAS personalizado ('$statusfmt') y se aplica a la variable 'Status' en un nuevo conjunto de datos 'employees_local'. Este conjunto de datos formateado se carga luego en CAS. Al recuperar (fetch) la tabla CAS, el formato se conserva y se muestra, demostrando que el proceso de carga respeta los atributos de las variables SAS, incluidos los formatos.
¡Copiado!
libname mycas cas;
/* Définition d'un format personnalisé pour une variable */
proc format;
value $statusfmt 'A' = 'Actif'
'I' = 'Inactif'
other = 'Inconnu';
run;
/* Création d'un jeu de données SAS avec une variable à formater */
data work.employees_local;
input EmpID Name $ Status $;
format Status $statusfmt.; /* Applique le format */
datalines;
201 John A
202 Jane I
203 Mike A
204 Sara X
;
run;
/* Chargement du jeu de données formaté dans CAS */
proc casutil;
load casdata="employees_local" casout="employees_cas" caslib="CASUSER" replace;
run;
/* Vérification et affichage pour voir le format appliqué */
proc cas;
table.fetch result=r / table={name="employees_cas", caslib="CASUSER"};
print r.Fetch;
quit;
1
LIBNAME mycas cas;
2
3
/* Définition d'un format personnalisé pour une variable */
4
PROC FORMAT;
5
value $statusfmt 'A' = 'Actif'
6
'I' = 'Inactif'
7
other = 'Inconnu';
8
RUN;
9
10
/* Création d'un jeu de données SAS avec une variable à formater */
11
DATA work.employees_local;
12
INPUT EmpID Name $ STATUS $;
13
FORMATSTATUS $statusfmt.; /* Applique le format */
14
DATALINES;
15
201 John A
16
202 Jane I
17
203 Mike A
18
204 Sara X
19
;
20
RUN;
21
22
/* Chargement du jeu de données formaté dans CAS */
DATA STEP / PROC CASUTIL / PROC CAS (Actions CAS) Data
Explicación : Este ejemplo resalta la integración con el entorno CAS de Viya para el procesamiento distribuido. Comienza creando un conjunto de datos SAS filtrado ('filtered_class_local'). Este conjunto se carga luego en CAS. La parte clave es el uso de `proc cas` para ejecutar directamente una 'acción CAS' (`simple.summary`). Esta acción está diseñada para explotar la arquitectura distribuida de CAS para calcular la edad promedio por sexo de manera eficiente, demostrando el potencial de rendimiento del análisis en memoria en el servidor CAS. Se añade un bloque de limpieza final para eliminar las tablas creadas en CAS.
¡Copiado!
libname mycas cas;
/* Crée un sous-ensemble du jeu de données SASHELP.CLASS avec un filtre */
data work.filtered_class_local;
set sashelp.class (where=(age >= 12));
keep name sex age;
run;
/* Charge le sous-ensemble dans CAS */
proc casutil;
load casdata="filtered_class_local" casout="filtered_class_cas" caslib="CASUSER" replace;
run;
/* Utilise une action CAS (simple.summary) pour effectuer une agrégation distribuée */
proc cas;
simple.summary result=summary_res /
table={name="filtered_class_cas", caslib="CASUSER"},
groupby={"sex"},
inputs={"age"};
print summary_res;
quit;
/* Nettoyage : suppression des tables CAS créées (facultatif) */
proc casutil;
droptable casdata="sample_data_cas" caslib="CASUSER";
droptable casdata="orders_cas" caslib="CASUSER";
droptable casdata="employees_cas" caslib="CASUSER";
droptable casdata="filtered_class_cas" caslib="CASUSER";
run;
1
LIBNAME mycas cas;
2
3
/* Crée un sous-ensemble du jeu de données SASHELP.CLASS avec un filtre */
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.