Publicado el :
Manipulación de datos CREATION_INTERNE

Conversión de tiempos de seguimiento: Arrays y Bucles

Este código también está disponible en: Deutsch English Français
En espera de validación
El script crea primero un conjunto de datos longitudinal que contiene los tiempos de seguimiento en días para varios pacientes. Luego ilustra dos métodos para convertir estos valores a años: un método ingenuo que escribe cada cálculo línea por línea, y un método optimizado que utiliza un array SAS© (ARRAY) iterado por un bucle DO. El resultado demuestra la eficacia de la programación iterativa para simplificar el código.
Análisis de datos

Type : CREATION_INTERNE


Los datos se definen directamente en el código a través de la instrucción DATALINES dentro de la primera etapa DATA.

1 Bloque de código
DATA STEP Data
Explicación :
Creación del conjunto de datos inicial 'long_study' que contiene los identificadores de pacientes y 10 mediciones de seguimiento (followup) expresadas en días, ingresadas manualmente a través de DATALINES.
¡Copiado!
1DATA long_study;
2 INPUT id followup1 followup2 followup3 followup4 followup5 followup6 followup7 followup8
3 followup9 followup10;
4DATALINES;
510001 0 2 359 713 1191 1443 1820 2185 2548 2910
610003 0 1 436 799 1085 1538 1807 2246 2540 2904
710004 0 1 184 362 548 730 904 936 1084 1134
810005 0 44 218 422 602 786 946 1150 1309 1533
9;
10RUN;
2 Bloque de código
DATA STEP Data
Explicación :
Conversión de las duraciones de días a años mediante un enfoque secuencial explícito (procesamiento condicional manual). Cada variable se recalcula individualmente, lo que hace que el código sea largo y repetitivo.
¡Copiado!
1DATA long_study2;
2 SET long_study;
3 followup1 = round((followup1 / 365.25), .1);
4 followup2 = round((followup2 / 365.25), .1);
5 followup3 = round((followup3 / 365.25), .1);
6 followup4 = round((followup4 / 365.25), .1);
7 followup5 = round((followup5 / 365.25), .1);
8 followup6 = round((followup6 / 365.25), .1);
9 followup7 = round((followup7 / 365.25), .1);
10 followup8 = round((followup8 / 365.25), .1);
11 followup9 = round((followup9 / 365.25), .1);
12 followup10 = round((followup10 / 365.25), .1);
13RUN;
3 Bloque de código
DATA STEP Data
Explicación :
Optimización del procesamiento anterior: uso de un array (ARRAY) que agrupa las variables 'followup1' a 'followup10' y de un bucle iterativo (DO loop) para aplicar la conversión matemática de forma dinámica y concisa.
¡Copiado!
1DATA long_study3;
2 SET long_study;
3 array followup {10} followup1-followup10;
4 DO i = 1 to 10;
5 followup{i} = round((followup{i} / 365.25), .1);
6 END;
7RUN;
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.