Publié le :

Conversion des temps de suivi : Tableaux et Boucles

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le script crée d'abord un jeu de données longitudinal contenant des temps de suivi en jours pour plusieurs patients. Il illustre ensuite deux méthodes pour convertir ces valeurs en années : une méthode naïve écrivant chaque calcul ligne par ligne, et une méthode optimisée utilisant un tableau SAS© (ARRAY) itéré par une boucle DO. Le résultat démontre l'efficacité de la programmation itérative pour simplifier le code.
Analyse des données

Type : CREATION_INTERNE


Les données sont définies directement dans le code via l'instruction DATALINES au sein de la première étape DATA.

1 Bloc de code
DATA STEP Data
Explication :
Création du jeu de données initial 'long_study' contenant les identifiants patients et 10 mesures de suivi (followup) exprimées en jours, saisies manuellement via DATALINES.
Copié !
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 Bloc de code
DATA STEP Data
Explication :
Conversion des durées de jours en années via une approche séquentielle explicite (traitement conditionnel manuel). Chaque variable est recalculée individuellement, ce qui rend le code long et répétitif.
Copié !
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 Bloc de code
DATA STEP Data
Explication :
Optimisation du traitement précédent : utilisation d'un tableau (ARRAY) regroupant les variables 'followup1' à 'followup10' et d'une boucle itérative (DO loop) pour appliquer la conversion mathématique de manière dynamique et concise.
Copié !
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;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.