Bonjour,
Je dispose de 150 variables dans une table comme suit:
Var1 var2 var3 ...........Var150
4
5
9
10
85
10
85
12
30
15
Je voudrais remplacer la valeur manquante dans Var1 à partir des variables Var2 à Var150.
Merci
Bonjour,
Je dispose de 150 variables dans une table comme suit:
Var1 var2 var3 ...........Var150
4
5
9
10
85
10
85
12
30
15
Je voudrais remplacer la valeur manquante dans Var1 à partir des variables Var2 à Var150.
Merci
Bonjour,
S'il s'agit d'un second aspect du même traitement qu'au message précédent, il semble bien que l'algorithme initial soit un peu complexe...
Mais voici une solution, avec un ARRAY, pour combler les valeurs manquantes de VAR1 avec la première valeur non-manquante des variables suivantes...
Bon courage !
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 var1-var5 ; cards ; . 1 2 3 4 2 3 4 5 6 . . 3 4 5 . . . 4 5 . 5 6 7 8 ; run ; data resultat ( drop = i ) ; set test ; array avar(*) var: ; if var1 = . then do ; do i = 2 to dim(avar) ; if avar(i) ne . then do ; avar(1) = avar(i) ; goto fin ; end ; end ; fin: end ; run ;
Bruno.
La fonction COALESCE permet de récupérer la première valeur non manquante d’une série de variables.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 PROC SQL; SELECT nom, COALESCE(v1,v2,v3,v4,v5) AS Premier FROM table; QUIT;
Partager