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.