Bonjour à tous,
Je cherche à réaliser un tableau dans SAS dont la structure n'est pas vraiment classique (voir pièce jointe). Il s'agit de décrire le nombre de personnes ayant accepté de participer à un jeu (= personnes inscrites) à la suite d'un entretien, en fonction de son pays et de la semaine. Pour cela je voudrais afficher dans un tableau 3 colonnes pour chaque semaine: le taux d'inscription (nb de personnes inscrites divisé par le nb total de personnes interrogées), le nombre d'inscrits, le nombre d'interrogés.
Voici un exemple de données:
J'ai pensé à 3 solutions différentes mais me heurte à chaque fois à un problème.
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 DATA test; input semaine lieu $ inscrip; datalines; 45 france 1 45 france 1 45 france 0 45 espagne 1 45 espagne 0 45 espagne 0 45 espagne 0 45 espagne 0 46 france 1 46 france 1 46 france 1 46 france 0 46 france 0 RUN;
--> un PROC TABULATE affiche une colonne en trop (celle des personnes non inscrites) et ne me permet pas de calculer le taux d'inscription
--> un PROC SQL ne me permet pas d'afficher toutes les semaines dans un même tableau
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 PROC TABULATE DATA=test; CLASS LIEU SEMAINE INSCRIP; TABLE LIEU,SEMAINE * (INSCRIP ALL); RUN;
--> avec un PROC REPORT, je n'ai pas trouvé comment ajouter le taux d'inscription
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 PROC SQL; SELECT lieu, (sum(inscrip)/count(inscrip))*100 as taux, sum(inscrip) as inscrip, count(inscrip) as total FROM test WHERE semaine=45 GROUP BY lieu; QUIT;
EDIT:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 PROC REPORT DATA=TEST nowindows; columns lieu (semaine, (inscrip n)) (inscrip n); define lieu / group ; define inscrip / analysis sum; define n/ 'Total'; define semaine/across; rbreak after / summarize; compute after; lieu="Total"; endcomp; RUN;
J'ai réussi à introduire le taux pour la colonne Total avec un PROC REPORT. Mon problème est maintenant d'avoir le taux pour chaque semaine...
J'imagine qu'une solution adaptée existe mais mon manque d'expérience ne m'a pas permis à ce jour de la trouver... Mille merci d'avance !
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 PROC REPORT DATA=TEST nowindows; columns lieu (semaine, (inscrip n)) (inscrip n taux); define lieu / group ; define inscrip / analysis sum; define n/ 'Total'; define semaine/across; rbreak after / summarize; compute after; lieu="Total"; endcomp; define taux / computed format=NPLCTN12.2; compute taux; taux = inscrip.sum/n; endcomp RUN;
Garpe
Partager