Bonjour,
j’ai créé un fichier ODS PDF qui est une suite de tableaux réalisé avec des proc tabulate comme ceci :
proc tabulate data=data.tab3 missing ;
class cat ;
class sonf;
tables sonf all='Total',cat*(n*f=10.0 pctn='%'*f=10.1)
all='Total'*(n*f=10.0 pctn='%'*f=10.1) ;
run ;
où chaque variable (comme ici « sonf ») est traitée en fonction de la variable « cat ». Je voudrais à chaque fois récupérer le risque relatif (proc freq option cmh) et sous chaque tableau écrire : « Le risque relatif est : …. ».
Comment faire?
Merci d’avance.
voici un exemple de réponse :
- avec une proc Freq (et l’option RELRISK plutôt que CMH plus bavarde), calculer les risques relatifs. Ceux-ci sont édités dans un objet ODS appelé RelativeRisks (si vous utilisez CMH, l’objet se nomme CommonRelRisks)
- ajouter, juste au-dessus de la proc Freq, une instruction ODS OUTPUT pour récupérer ces informations dans une table SAS
- après la proc Freq, ajouter une étape Data pour générer une macro-variable contenant la valeur du risque relatif qui vous intéresse
- se servir de la valeur de cette macro-variable dans un FOOTNOTE ou un ODS TEXT.
Ci-dessous un exemple :
ODS EXCLUDE ALL ;
ODS OUTPUT relativeRisks = work.rr ;
PROC FREQ DATA = cours.produits ;
TABLE couleur * primeur / RELRISK ;
RUN ;
ODS SELECT ALL ;
DATA _NULL_ ;
SET work.rr (WHERE = (studyType = "Case-Control (Odds Ratio)")) ;
CALL SYMPUT ("rr", LEFT(PUT(value, 12.2))) ;
RUN ;
ODS RTF FILE = "c:\temp\essai.doc" STARTPAGE = NEVER ;
PROC TABULATE DATA = cours.produits ;
CLASS couleur primeur ;
TABLE (couleur ALL="TOTAL") ,
(primeur ALL="TOTAL") *
(N * F = 7. colPctN = "%" * F = 7.1) ;
RUN ;
ODS RTF TEXT = "Le risque relatif est : &rr" ;
ODS RTF CLOSE ;
Par rapport au programme de votre question, je préfère l’emploi des mots-clés PCTN, COLPCTN et ROWPCTN à celui des spécifications entre < et > du dénominateur de ces pourcentages ; PCTN sont des pourcentages de l’ensemble du tableau, COLPCTN des pourcentages-colonnes et ROWPCTN des pourcentages-lignes.