Bonjour tt le monde,

Je vous envoie en attachement, un programme SAS qui transforme une structure de tables en un autre modèle, sauf que les noms de mes variables se présentent comme suit :

ADH_ACTION ADH_QTE_ACTION ADH_VALO_ACTION
SRM_ACTION SRM_QTE_ACTION SRM_VALO_ACTION

c'est un exemple, alors que ce que je veux comme nom de variable doit être comme :

ADH QTE_ADH VALO_ADH
SRM QTE_SRM VALO_SRM

En vous remerciant.





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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
DATA TEST ;
input       DATCOM ddmmyy10. LIBCOU $5. ACTION QTE_ACTION VALO_ACTION  ACT QTE_ACT VALO_ACT ;
 
;
cards ;
02/11/2009 ADH 114.45 450.00 51502.50  .        .       .    
02/11/2009 SLF 600.00 149.00 89400.00  .        .       .    
02/11/2009 SNP 510.00 120.00 61200.00  .        .       .    
02/11/2009 SRM 395.50 159.00 62884.50  .        .       .    
02/11/2009 FCP    .    .    .    600.00 149.00 89400.00      
02/11/2009 VAL     .    .    .    510.00 120.00 61200.00     
02/11/2009 TIJ     .    .    .    395.50 159.00 62884.50     
03/11/2009 ADH 114.45 450.00 51502.50  .        .       .    
03/11/2009 SLF 600.00 149.00 89400.00  .        .       .    
03/11/2009 SNP 510.00 120.00 61200.00  .        .       .    
03/11/2009 SRM 395.50 159.00 62884.50  .        .       .    
03/11/2009 FCP    .    .    .    600.00 149.00 89400.00      
03/11/2009 VAL     .    .    .    510.00 120.00 61200.00     
03/11/2009 TIJ     .    .    .    395.50 159.00 62884.50     
04/11/2009 ADH 114.45 450.00 51502.50  .        .       .    
04/11/2009 SLF 600.00 149.00 89400.00  .        .       .    
04/11/2009 SNP 510.00 120.00 61200.00  .        .       .    
04/11/2009 SRM 395.50 159.00 62884.50  .        .       .    
04/11/2009 FCP    .    .    .    600.00 149.00 89400.00      
04/11/2009 VAL     .    .    .    510.00 120.00 61200.00     
04/11/2009 TIJ     .    .    .    395.50 159.00 62884.50     
 
 
;
run ;
 
proc print ; run ;
 
%macro selection(label);
	LABEL=CATS(LIBCOU,"_", "&label."); VALEUR=&label.; output;
%mend ;
 
 
DATA TEST2 ;
 
SET TEST ;
 
length LABEL $32  VALEUR 8 ; format DATCOM ddmmyy10. ;
 
IF LIBCOU IN ("CGI" "SCE" "MIC" "NEX" "ONA" "OUL""SRM" "SCE" "SNA" "TSF" "TIM" "UMR" "WAA" "ZDJ" )
THEN 
do ;
%selection(ACTION)  %selection(QTE_ACTION)  %selection(VALO_ACTION) ;
end ;
 
ELSE IF LIBCOU IN ("FCP" "VAL" "TIJ" )  
THEN 
do ;
%selection(ACT)    %selection(QTE_ACT)  %selection(VALO_ACT) KEEP DATCOM LABEL VALEUR ;
end ;
;
 
RUN ;
 
PROC PRINT ; RUN ;
 
proc transpose DATA=TEST2 out = TEST3 (DROP=_NAME_) ;
BY DATCOM ;
var VALEUR ;
ID  LABEL ;
format DATCOM ddmmyy10.;
run ;
 
 
proc print ; run ;