Bonjour,
Pourcentages de variation
Je cherche à calculer un pourcentage de variation de plusieurs manières, j'ai réussi avec LAG, avec RETAIN et encore avec SYMPUTX.
L'idée est simple, j'ai plusieurs paramètres m1 à m5 à différents temps et je cherche à calculer leur pourcentage de variation aux différents temps (t = 1 à 3) par rapport à une baseline (t=0).
Rien de bien compliqué (surtout que je ne prends pas en compte ici l'éventuel ID concerné).
Mais quand j'essaye de faire ce calcul via des arrays, je n'arrive pas à mes fins : dans l'exemple ci-dessous je souhaite conserver dans Minit les valeurs initiales (t=0), mais en affichant le contenu du tableau, SAS a lu et conservé successivement toutes les valeurs de m1 à m5 (pas seulement celles de t=0) et je ne comprends pas cela...
Pouvez-vous m'aider ?
Merci pour votre aide précieuse!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 data test; input t m1 m2 m3 m4 m5; cards; 0 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3 4 4 4 4 4 ; run; data _null_; set test; /*stockage des valeurs au temps initial (t=0)*/ if t=0 then do; put 'Mes valeurs initiales (t=0) :' m1 m2 m3 m3 m5; array Minit m:; /*on stocke dans le tableau Minit les m1 à m5*/ end; /*en parcourant le tableau à chaque ligne j'obtiens les valeurs successives de m1-m5 et pas les valeurs initiales que j'ai stockées à t=0 : POURQUOI?*/ do i= 1 to dim(Minit); put "Minit" i " " Minit(i); end; run;
Partager