Bonjour,
Voici l'exemple
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
24
25
26
27
28 DATA T1 ; input X age AB $ Y ; cards ; 1 41 Idem 1942 2 56 Idem 7 3 23 Idem 111 4 57 Idem 9 ; run ; DATA T2 ; input X age Z $; cards ; 1 63 A 1 69 B 2 56 C 3 18 D 4 45 E 4 47 F ; run ; option MSGLEVEL=I; data AB AA BB; merge T2(in=a) T1(in=b); by X ; if A and B then output AB; else if A and not B then output AA; else if not A and B then output BB; else put 'problème';run; proc print data=AB;run;INFO: La variable age de la table WORK.T2 sera remplacée par la table WORK.T1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Obs X age Z AB Y 1 1 41 A Idem 1942 2 1 69 B Idem 1942 3 2 56 C Idem 7 4 3 23 D Idem 111 5 4 57 E Idem 9 6 4 47 F Idem 9
Pourquoi pour la 2 ème observation par exemple, il n'écrase pas l'age de T2 par l'age de T1
Par contre si je fais le merge dans l'autre sens, cela marche.
Bizarre.
Partager