Bonjour,
Je dispose de la table suivante que j'affiche sous forme de tableau avec une proc tabulate :
Je cherche maintenant à calculer le sex-ratio en fonction de la classe d'âge.
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 DATA test; INPUT Class_age $ Sexe $ Id; CARDS; ]40et+] F 1 ]10-20] M 2 ]20-30] M 3 ]30-40] F 4 ]30-40] M 5 ]30-40] M 6 ]40et+] M 7 [0-10] F 8 ]20-30] M 9 ]40et+] F 10 ]20-30] F 11 ]10-20] F 12 [0-10] M 13 ]10-20] F 14 ]30-40] F 15 [0-10] M 16 ]10-20] M 17 ]20-30] F 18 ]40et+] M 19 ]30-40] F 20 [0-10] M 21 ]40et+] M 22 [0-10] F 23 ]20-30] M 24 ; RUN; PROC TABULATE DATA = test; CLASS sexe class_age; TABLE (class_age all), (sexe all) * (n); RUN;
Est-ce faisable avec la proc tabulate ou faut-il procéder autrement ?
J'ai calculé le sex-ratio d'une autre manière en passant par une data set :mais je ne sais pas comment retrouver ensuite le même tableau d'initialement avec le sex-ratio en plus.
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 PROC TABULATE DATA = test OUT = test1; CLASS sexe class_age; TABLE (class_age all) (sexe all) * (n); RUN; PROC SORT DATA = test1; BY class_age; RUN; PROC TRANSPOSE DATA = test1 OUT = test2 (KEEP = F M class_age); BY class_age; VAR N; ID sexe; COPY _all_; RUN; DATA test2; SET test2; sex_ratio = M/F; IF sex_ratio = . THEN DELETE; RUN;
Une idée ? Merci.
Partager