Publicado el :
ETL CREATION_INTERNE

Análisis y fusión de datos corporativos y financieros

Este código también está disponible en: Deutsch English Français
En espera de validación
El script comienza definiendo dos conjuntos de datos temporales, 'company' y 'finance', utilizando bloques 'datalines' para la entrada directa de datos. El conjunto de datos 'company' contiene información demográfica de los empleados (Nombre, Edad, Sexo), mientras que 'finance' contiene detalles financieros (Número de teléfono, Nombre, Salario). Cada conjunto de datos se ordena por 'Name' usando PROC SORT, lo cual es un paso preparatorio esencial para la fusión. Los conjuntos de datos ordenados se imprimen a continuación. Luego, el script fusiona 'company' y 'finance' en un nuevo conjunto de datos 'employeeinfo' basado en la variable común 'Name'. Se utilizan procedimientos PROC PRINT adicionales para mostrar el conjunto de datos fusionado, así como para demostrar el uso de las opciones globales 'firstobs' y 'obs', la cláusula 'WHERE' para el filtrado, y un intento de cálculo de suma para una variable categórica (que se anota como un posible error). Finalmente, se utilizan PROC CONTENTS y PROC DATASETS para examinar los metadatos de los conjuntos de datos, en particular 'company'.
Análisis de datos

Type : CREATION_INTERNE


Los datos para los conjuntos de datos 'company' y 'finance' se crean directamente en el script SAS a través de bloques 'datalines'. No se utilizan datos externos ni bibliotecas SASHELP como fuente principal de datos para estos conjuntos de datos.

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque DATA STEP crea el conjunto de datos 'company' utilizando datos en línea proporcionados en el bloque 'datalines'. Define las variables 'Name' (carácter), 'Age' (numérica) y 'Gender' (carácter) con sus respectivas posiciones de columna. Este conjunto de datos contiene información básica sobre los empleados.
¡Copiado!
1DATA company;
2INPUT
3Name $ 1-25
4Age 27-28
5Gender $ 30;
6 DATALINES;
7Vincent, Martina 34 F
8Phillipon, Marie-Odile 28 F
9Gunter, Thomas 27 M
10Harbinger, Nicholas 36 M
11Benito, Gisela 32 F
12Rudelich, Herbert 39 M
13Sirignano, Emily 12 F
14Morrison, Michael 32 M
15;
16 
2 Bloque de código
PROC SORT
Explicación :
Este PROC SORT ordena el conjunto de datos 'company' por la variable 'Name'. La ordenación es esencial para operaciones posteriores como la fusión ('MERGE') que generalmente requieren que los conjuntos de datos de entrada estén ordenados por las variables de fusión ('BY' variables).
¡Copiado!
1PROC SORT DATA=company;
2 BY Name;
3RUN;
4 
3 Bloque de código
PROC PRINT
Explicación :
Este PROC PRINT muestra el contenido del conjunto de datos 'company' en la ventana de salida. El 'title' especifica el título del informe impreso, haciéndolo más descriptivo.
¡Copiado!
1PROC PRINT DATA=company;
2 title 'Company';
3RUN;
4 
4 Bloque de código
DATA STEP Data
Explicación :
Este segundo bloque DATA STEP crea el conjunto de datos 'finance', similar al bloque 'company', utilizando 'datalines'. Captura las variables 'Phone_number' (carácter), 'Name' (carácter) y 'Salary' (numérica), conteniendo información financiera para algunos empleados.
¡Copiado!
1DATA finance;
2 INPUT Phone_number $ 1-11
3 Name $ 13-40
4 Salary;
5 DATALINES;
6074-53-9892 Vincent, Martina 35000
7776-84-5391 Phillipon, Marie-Odile 29750
8929-75-0218 Gunter, Thomas 27500
9446-93-2122 Harbinger, Nicholas 33900
10228-88-9649 Benito, Gisela 28000
11029-46-9261 Rudelich, Herbert 35000
12442-21-8075 Sirignano, Emily 5000
13;
14 
5 Bloque de código
PROC SORT
Explicación :
Similar a la ordenación del conjunto de datos 'company', este PROC SORT ordena el conjunto de datos 'finance' por la variable 'Name' en preparación para la operación de fusión.
¡Copiado!
1PROC SORT DATA=finance;
2 BY Name;
3RUN;
4 
6 Bloque de código
PROC PRINT
Explicación :
Este PROC PRINT muestra el contenido del conjunto de datos 'finance' con el título 'Employee Information', proporcionando una vista de los datos financieros individuales.
¡Copiado!
1PROC PRINT DATA=finance;
2 title 'Employee Information';
3RUN;
4 
7 Bloque de código
DATA STEP Data
Explicación :
Este DATA STEP fusiona los conjuntos de datos 'company' y 'finance' en un nuevo conjunto de datos llamado 'employeeinfo'. La cláusula 'BY name;' indica que la fusión debe realizarse haciendo coincidir las observaciones en función de la variable 'Name'. Si un nombre aparece en un conjunto de datos pero no en el otro, los valores de las variables no coincidentes serán faltantes. Los conjuntos de datos de entrada deben estar ordenados por la variable 'BY'.
¡Copiado!
1DATA employeeinfo;
2 MERGE company finance;
3 BY name;
4RUN;
5 
8 Bloque de código
PROC PRINT
Explicación :
Este PROC PRINT muestra el conjunto de datos 'employeeinfo', que es el resultado de la fusión. El uso de 'title' y 'title2' permite definir dos líneas de título para la salida del informe.
¡Copiado!
1PROC PRINT DATA=employeeinfo;
2 title 'Laxmi is Cute!';
3 title2 'very cute';
4RUN;
5 
9 Bloque de código
PROC CONTENTS
Explicación :
La PROC CONTENTS proporciona metadatos detallados sobre el conjunto de datos 'company'. Esto incluye información como el número de observaciones, el número de variables, los nombres de las variables, sus tipos (numérico o carácter), sus longitudes y sus formatos.
¡Copiado!
1PROC CONTENTS DATA = company;
2RUN;
3 
10 Bloque de código
PROC DATASETS
Explicación :
La PROC DATASETS es un procedimiento de gestión de bibliotecas que permite varias operaciones en conjuntos de datos y catálogos. Aquí, la instrucción 'contents data= company;' se utiliza para obtener los mismos metadatos que PROC CONTENTS para el conjunto de datos 'company'. A menudo se utiliza en un contexto donde se realizan varias operaciones de gestión de conjuntos de datos dentro de una única ejecución de PROC DATASETS.
¡Copiado!
1PROC DATASETS;
2contents DATA= company;
3RUN;
4 
11 Bloque de código
OPTIONS et PROC PRINT
Explicación :
Este bloque demuestra el uso de las opciones globales 'firstobs' y 'obs'. 'options firstobs=3;' indica a SAS que comience a leer los datos a partir de la tercera observación, y 'obs=9;' indica que se detenga después de la novena observación. Por lo tanto, este PROC PRINT mostrará las observaciones 3 a 9 (incluidas) del conjunto de datos 'employeeinfo'. Estas opciones afectan a todos los pasos de datos y procedimientos posteriores hasta que se reinicien o modifiquen.
¡Copiado!
1options firstobs= 3 obs=9;
2PROC PRINT DATA = employeeinfo;
3RUN;
4 
12 Bloque de código
PROC PRINT
Explicación :
Este PROC PRINT utiliza una cláusula 'WHERE' para filtrar las observaciones del conjunto de datos 'employeeinfo'. Solo se mostrarán las observaciones donde la variable 'Name' contenga la subcadena 'Vi' (insensible a mayúsculas y minúsculas por defecto en SAS para 'contains' a menos que se cambie la opción). Esto permite seleccionar subconjuntos de datos específicos para su visualización.
¡Copiado!
1PROC PRINT DATA = employeeinfo;
2where Name contains 'Vi';
3RUN;
4 
13 Bloque de código
PROC PRINT
Explicación :
Este PROC PRINT intenta generar un informe con subtotales. La instrucción 'by Name;' agrupa las observaciones por nombre, y 'sum Gender;' está destinada a calcular totales para la variable 'Gender'. Sin embargo, 'Gender' es una variable de tipo carácter, y la instrucción 'SUM' en PROC PRINT está diseñada para variables numéricas. Esto resultará en una advertencia o error en el log de SAS y la suma para 'Gender' no se mostrará. La instrucción 'ID Gender;' significa que la variable 'Gender' se utilizará como variable de identificación en el informe, pero no se utiliza típicamente en este contexto para una agrupación significativa con 'BY' y 'SUM' en una variable categórica.
¡Copiado!
1PROC PRINT DATA = employeeinfo;
2title 'Sub total';
3sum Gender;
4BY Name;
5ID Gender;
6RUN;
7 
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.