Publicado el :
ETL CREATION_INTERNE

Conversión de unidades de tiempo mediante Arrays y Bucles

Este código también está disponible en: Deutsch English Français
En espera de validación
Este programa ilustra el uso de arrays SAS© (ARRAY) para aplicar una transformación matemática idéntica a varias columnas. Crea un conjunto de datos de prueba, convierte los valores (división por 60 con redondeo a 0.1) mediante un bucle DO, y muestra el resultado final.
Análisis de datos

Type : CREATION_INTERNE


Los datos se generan directamente en el código mediante la instrucción DATALINES dentro del paso DATA EXPER.

1 Bloque de código
DATA STEP Data
Explicación :
Creación del conjunto de datos 'EXPER' que contiene 5 variables numéricas (TIME0 a TIME4) alimentadas por datos internos (datalines).
¡Copiado!
1DATA EXPER;
2 INPUT TIME0-TIME4;
3DATALINES;
4100 200 300 400 500
555 110 130 150 170
6;
2 Bloque de código
DATA STEP Data
Explicación :
Transformación de los datos en la tabla 'MINUTES'. Uso de un ARRAY para referenciar las columnas TIME0-TIME4 y de un bucle DO para dividir cada valor por 60 y redondearlo a la primera decimal.
¡Copiado!
1DATA MINUTES;
2 SET EXPER;
3 array TIME[0:4] TIME0-TIME4;
4 DO i = 0 to 4;
5 TIME[i]= round(TIME[i]/60,0.1);
6 END;
7 drop i;
3 Bloque de código
PROC PRINT
Explicación :
Impresión del conjunto de datos transformado 'MINUTES' en la salida estándar.
¡Copiado!
1 
2PROC PRINT
3DATA=MINUTES;
4title'Problem 15.8 Listing of Time Measured in Minutes';
5RUN;
6 
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.