Bonjour à tous,
Je cherche à créer une Proc Report à 3 dimension et à mettre en forme suivant la lecture d'une autre variable dans mes données.
Je m'explique, voilà mes données :
La variable y1 contient un code couleur.
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 data work.test; input Ecole $ Classe $ Ville $ sexe$ nombre y1 ; cards; College pro Toulouse Fille 3 1 College pro Toulouse Homme 13 1 College etu Toulouse Fille 13 1 College etu Toulouse Homme 2 1 College pro Paris Fille 53 2 College pro Paris Homme 13 2 College etu Paris Fille 1 2 College etu Paris Homme 3 2 College pro Amiens Fille 8 3 College pro Amiens Homme 0 3 College etu Amiens Fille 23 3 College etu Amiens Homme 9 3 Lycee pro Amiens Fille 15 3 Lycee pro Amiens Homme 2 3 Lycee etu Amiens Fille 9 3 Lycee etu Amiens Homme 5 3 Lycee pro Toulouse Fille 22 1 Lycee pro Toulouse Homme 5 1 Lycee etu Toulouse Homme 5 1 Lycee etu Toulouse Fille 9 1 Lycee pro Paris Fille 12 1 Lycee pro Paris Homme 5 1 Lycee etu Paris Homme 5 1 Lycee etu Paris Fille 8 1 Primaire pro Amiens Fille 0 2 Primaire pro Amiens Homme 0 2 Primaire etu Amiens Fille 3 2 Primaire etu Amiens Homme 12 2 Primaire pro Toulouse Fille 0 2 Primaire pro Toulouse Homme 0 2 Primaire etu Toulouse Fille 2 2 Primaire etu Toulouse Homme 9 2 Primaire pro Paris Fille 0 3 Primaire pro Paris Homme 0 3 Primaire etu Paris Fille 53 3 Primaire etu Paris Homme 9 3 ; run;
La proc report suivante affiche mes données tel que je le souhaite :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 proc report data=test nowd ; title1 "Test 1"; column Ecole Classe Ville, sexe, nombre ; define Ecole / '' group style(column)=[ cellwidth = 4 cm just = c]; define Classe / '' across group center ; define Ville / '' across ; define sexe / '' across ; define nombre / analysis '' ; run;
et je cherche maintenant à colorer les cases suivant la variable y1.
La coloration serait donc la suivante (mais les données affichées sont les couleurs et pas le nombre) :
Ce qui s'en approche le plus est cette version ... :
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 proc report data=test nowd ; title1 "Test 2"; column Ecole Classe y1 Ville, sexe, nombre ; define Ecole / '' group style(column)=[ cellwidth = 4 cm just = c]; define y1 / group noprint '' ; define Classe / '' across group center ; define Ville / '' across ; define sexe / '' across ; define nombre / analysis '' ; COMPUTE nombre; IF y1 = 1 THEN CALL DEFINE(_COL_, "style", "STYLE=[BACKGROUND=RED]"); IF y1 = 2 THEN CALL DEFINE(_COL_, "style", "STYLE=[BACKGROUND=ORANGE]"); IF y1 = 3 THEN CALL DEFINE(_COL_, "style", "STYLE=[BACKGROUND=GREEN]"); ENDCOMP; run;
Quelqu'un aurait une astuce ?
Merci d'avance !
(Mon code complet :
)
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107 data work.test; input Ecole $ Classe $ Ville $ sexe$ nombre y1 ; cards; College pro Toulouse Fille 3 1 College pro Toulouse Homme 13 1 College etu Toulouse Fille 13 1 College etu Toulouse Homme 2 1 College pro Paris Fille 53 2 College pro Paris Homme 13 2 College etu Paris Fille 1 2 College etu Paris Homme 3 2 College pro Amiens Fille 8 3 College pro Amiens Homme 0 3 College etu Amiens Fille 23 3 College etu Amiens Homme 9 3 Lycee pro Amiens Fille 15 3 Lycee pro Amiens Homme 2 3 Lycee etu Amiens Fille 9 3 Lycee etu Amiens Homme 5 3 Lycee pro Toulouse Fille 22 1 Lycee pro Toulouse Homme 5 1 Lycee etu Toulouse Homme 5 1 Lycee etu Toulouse Fille 9 1 Lycee pro Paris Fille 12 1 Lycee pro Paris Homme 5 1 Lycee etu Paris Homme 5 1 Lycee etu Paris Fille 8 1 Primaire pro Amiens Fille 0 2 Primaire pro Amiens Homme 0 2 Primaire etu Amiens Fille 3 2 Primaire etu Amiens Homme 12 2 Primaire pro Toulouse Fille 0 2 Primaire pro Toulouse Homme 0 2 Primaire etu Toulouse Fille 2 2 Primaire etu Toulouse Homme 9 2 Primaire pro Paris Fille 0 3 Primaire pro Paris Homme 0 3 Primaire etu Paris Fille 53 3 Primaire etu Paris Homme 9 3 ; run; proc report data=test nowd ; title1 "Test 1"; column Ecole Classe Ville, sexe, nombre ; define Ecole / '' group style(column)=[ cellwidth = 4 cm just = c]; define Classe / '' across group center ; define Ville / '' across ; define sexe / '' across ; define nombre / analysis '' ; run; proc report data=test nowd ; title1 "Test 2"; column Ecole Classe y1 Ville, sexe, nombre ; define Ecole / '' group style(column)=[ cellwidth = 4 cm just = c]; define y1 / group noprint '' ; define Classe / '' across group center ; define Ville / '' across ; define sexe / '' across ; define nombre / analysis '' ; COMPUTE nombre; IF y1 = 1 THEN CALL DEFINE(_COL_, "style", "STYLE=[BACKGROUND=RED]"); IF y1 = 2 THEN CALL DEFINE(_COL_, "style", "STYLE=[BACKGROUND=ORANGE]"); IF y1 = 3 THEN CALL DEFINE(_COL_, "style", "STYLE=[BACKGROUND=GREEN]"); ENDCOMP; run; proc format; value couleur 1 = 'red' 2 = 'orange' 3 = 'green'; run; proc report data=test nowd headline headskip style(report)=[rules=none frame=void ] ; title1 "Test 3"; column Ecole Classe Ville, sexe, y1; ; define Ecole / '' group style(column)=[ cellwidth = 4 cm just = c]; define Classe / '' across group center ; define Ville / '' across ; define sexe / '' across ; define y1 / analysis ''; COMPUTE y1; CALL DEFINE(_COL_, "style", "STYLE=[BACKGROUND=couleur.]"); ENDCOMP; run;
Partager