chapitre 4 la generation de sorties sas avec les ods

33
Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS Documentation SAS : http://support.sas.com/rnd/base/ods/ M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE Université Paris 1 Panthéon Sorbonne 1

Upload: others

Post on 18-Jun-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

Chapitre 4 LA GENERATION DE SORTIES SAS

AVEC LES ODS

Documentation SAS : http://support.sas.com/rnd/base/ods/

M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE Université Paris 1 Panthéon Sorbonne

1

Page 2: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

2M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

SOMMAIRE

Page 3: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

3M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

I – ODS : Les principes

Page 4: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

I – ODS : Les principes

4M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

• Les principes

• Les destinations ODS

• La syntaxe

ODS destination CLOSE ;

ODS _ALL_ CLOSE;

Page 5: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

5M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

II – ODS HTML

Page 6: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

II – ODS HTML

6M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

• La syntaxe

ODS HTML BODY="fichier-de-sortie.html";

<Procédure(s)>

ODS HTML CLOSE;

• Exemple 1.1 : Créer un fichier html « sortie1 » contenant les statistiques descriptives des prix par produit dans la table VENTES (proc means)

• Exemple 1.2 : Définir le chemin de stockage du fichier à l’aide de l’option PATH=.

• Exemple 1.3 : Modifier la procédure telle que l’on verra:

- moyenne, minimum, maximum

- pas de nombre de d'observation

- variable d'analyse CA

Page 7: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

II – ODS HTML

7M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

• Exemple 1.4 : A l’aide d’instruction TITLE et/ou FOOTNOTE, créer le rapport HTML suivant :

• Exemple 1.5 : Faire plusieurs procédures dans une même sortie HTLM pour obtenir :

- Les ventes par région

- Les ventes par produit

- Le chiffre d’affaire par région

Page 8: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

II – ODS HTML

8M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

• Les Styles

Page 9: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

II – ODS HTML

9M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

• Exemple 1.6 : Remplacer l’instruction ODS HTML du précédent programme par celle-ci pour ajouter un style et une table des matière à votre sortie :

ODS HTML PATH=ODSOUT

BODY='sortie6_body.html'

STYLE=gears

CONTENTS='sortie6_contenu.html'

FRAME='sortie6_cadre.html'

NEWFILE=PROC;

Page 10: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

II – ODS HTML

10M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

• Faciliter la navigation sur Internet

• Exemple 1.8 : Insertion d’un bouton pour revenir à la page précédente du site d’où l’on vient

ODS HTML BODY='sortie8.html'

PATH=ODSOUT

STYLE=default;

PROC FREQ DATA=sashelp.class;

TABLES sex*age;

FOOTNOTE1 "Retour vers le site d’où je viens";

FOOTNOTE2 '<INPUT TYPE="button" VALUE="Cliquer ici" onClick="history.

go(-1);"> ';

RUN;

ODS HTML CLOSE;

Page 11: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

II – ODS HTML

11M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

• Exemple 1.9 : Introduire un ou plusieurs liens vers d’autres sites Internet

ODS HTML BODY='sortie9.html'

PATH=ODSOUT

STYLE=default;

PROC FREQ DATA=sashelp.class;

TABLES sex*age;

TITLE "Allons sur le site de la fac";

TITLE2 '<A HREF="http://www.univ-paris1.fr/">www.paris1.fr</A> <A></A>';

FOOTNOTE2 '<A HREF="http://www.sas.com">Site de SAS</A> <A></A>';

;RUN;

ODS HTML CLOSE;

Page 12: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

II – ODS HTML

12M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

• Exemple 1.10 : Introduire l’envoi d’un email à une adresse spécifique

ODS HTML BODY='sortie10.html' PATH=ODSOUT STYLE=default;

PROC FREQ DATA=sashelp.class;

TABLES sex*age;

TITLE "Allons sur le site de la fac";

TITLE2 '<A HREF="http://www.univ-paris1.fr/">www.paris1.fr</A> <A></A>';

FOOTNOTE2 '<A HREF="http://www.sas.com">Site de SAS</A> <A></A>';

FOOTNOTE3 JUSTIFY=c '<A></A> Un commentaire : <A

HREF="mailto:[email protected]?subject=bravo !">écrivez moi !</A>';

;RUN;

ODS HTML CLOSE;

Page 13: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

13M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

III – ODS RTF

Page 14: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

III – ODS RTF

14M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

• La syntaxe

• Reprendre le format suivant :

PROC FORMAT;

VALUE $region N='Nord' C='Centre' B='Bretagne' L='Limousin';

VALUE $taille P='Petit' M='Moyen' G='Gros';

VALUE $produit A='Prod. A' B='Prod. B' C='Prod. C';

VALUE $client G='Gros' D='Détail';

RUN;

ODS RTF FILE= 'monfichier.rtf' PATH=ODSOUT;

< Prodédure(s)>

ODS RTF CLOSE;

Page 15: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

III – ODS RTF

15M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

• Exemple 3.1 : Mettre la procédure ci-dessous dans un fichier .rtf

PROC MEANS DATA=APPSAS.ventes NONOBS SUM;

CLASS produit;

VAR ca;

RUN;

• Exemple 3.2: Créer 2 sorties, une html et une rtf contenant la procédure ci-dessous, en appliquant le

format donné à la variable produit.

Page 16: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

III – ODS RTF

16M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

• La gestion des grands tableaux

ODS RTF FILE='sortie_3_3.rtf' PATH=ODSOUT;

PROC FREQ DATA=APPSAS.ventes;

FORMAT produit $produit.;

TABLES vente;

RUN;

ODS RTF CLOSE;

Exemple 3.4 : Utiliser l’ODS HTML en modifiant l’extension du fichier générer pour obtenir un fichier excel

ODS HTML FILE='sortie_3_4.xls' PATH=ODSOUT;

PROC FREQ DATA=APPSAS.ventes;

FORMAT produit $produit.;

TABLES vente;

RUN;

ODS HTML CLOSE;

Page 17: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

17M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

IV – ODS PDF

Page 18: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

IV – ODS PDF

18M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

28

Copy r ight © 2014, SAS Insti tute I nc . All r i ghts r eserved.

PRINTER Destinations

28

ods ps file="&path2\r106d04.ps";ods pcl file="&path2\r106d04.pcl";

ods pdf file="&path2\r106d04.pdf";

r106d04

Page 19: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

IV – ODS PDF

19M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

• Exemple 4.1 : Insérer la procédure suivante dans une sortie PDF PROC FREQ DATA=APPSAS.ventes;

FORMAT produit $produit.;

TABLES produit / NOPERCENT NOCUM;

RUN;

• Options pour les ODS PDF :

NOTOC

STARTPAGE=NEVER/NO/NOW/YES

Lire le document suivant pour les options complémentaires : http://support.sas.com/rnd/base/ods/odsprinter/PDF-tips.pdf

Page 20: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

20M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

V – Options et instructions utiles à tous les ODS

NEWFILE = NONE | PROC | OUTPUT | BYGROUP | PAGE

Date/Nodate

Number/nonumber

Orientation= Portrait | Landscape

STARTPAGE = YES | NO | NOW

ODS TEXT = 'mon texte‘

TITLE et FOOTNOTE

Color=color

Font=’font’

Height=height<units> Justify=LEFT|CENTER|RIGHT

Link=’url’

Page 21: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

21M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

VI – ODS TAGSETS.EXCELXP

http://support.sas.com/rnd/base/ods/excel/

http://support.sas.com/rnd/base/ods/odsmarkup/TipSheet_ods_xl_xp.pdf.

Page 22: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

22M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

VI – ODS TAGSETS.EXCELXP

• La syntaxeods tagsets.excelxp file="fichier.xls";

ods tagsets.excelxp close;

• Exemple 6.1 : Compléter le programme suivant pour créer un fichier XLS

ods tagsets.excelxp file="&chemin\exemple1_1.xls";

proc print data=appsas.emps noobs;

var Name EmployeeID JobTitle Gender Country Salary;

where JobTitle contains 'Chief';

title 'Report 1';

run;

ods tagsets.excelxp close;

Page 23: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

23M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

VI – ODS TAGSETS.EXCELXP

• Exemple 6.2 : Modifier le nom de l’onglet du fichier excel à l’aide de l’option sheet_name

options(sheet_name='Report 1')

Ajouter également le style SASWEB.

• Exemple 6.3 : Ajouter 2 nouveaux onglets ‘Report 2 et Report 3, contenant respectivement les 2

procédures suivantes :

proc tabulate data=appsas.emps;

class Gender Country;

var Salary;

table Gender, Country*Salary;

title 'Report 2';

run;

proc report data=appsas.emps nowd;

column Country Salary,(Mean Min Max);

define Country / group;

title 'Report 3';

run;

Page 24: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

24M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

VI – ODS TAGSETS.EXCELXP

• Quelques options supplémentaires pour les ODS tagsets.excelxp

• Attention : Ajouter des S à la fin !!!

• Exemple 6.4 : A partir de la proc print ci-dessous,

figer la première ligne du tableau obtenu.

• Exemple 6.5 : Mettre des filtres automatiques sur

les colonnes 3 à 6

proc print data=appsas.emps noobs;

var Company Department Country

Gender Salary Section;

run;

Page 25: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

25M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

VI – ODS TAGSETS.EXCELXP

• La génération de fichier XLSX

options nodate nonumber;

ods _all_ close;

goptions device=actximg;

ods excel file="&chemin\exemple6_4.xlsx";

proc print data=appsas.emps noobs;

var Name EmployeeID JobTitle Gender Country

Salary;

where JobTitle contains 'Chief';

title 'Report 1';

run;

ods excel close;

Page 26: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

26M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

VII – ODS POWERPOINT

Page 27: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

27M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

VII – ODS POWERPOINT

• La syntaxe

ods powerpoint

file="fichier.pptx"

style=PowerPointLight

layout=

<TitleSlide

TitleAndContent

TwoContent>;

Page 28: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

28M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

• Exemple 7.1 : A l’aide de la proc ods text suivante, créer un document .pptx contenant une slide de texte uniquement.

ods escapechar='~';

footnote '~{style [fontsize=24pt]TIDE 2021 - Confidentiel}';

proc odstext;

p 'Presentation Sales Report' / style=PresentationTitle;

p 'Mercredi 14 Novembre 2021' / style=PresentationTitle2;

run;

VII – ODS POWERPOINT

Page 29: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

29M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

• Exemple 7.2 : Ajouter une slide contenant le tableau généré par le code suivant :

VII – ODS POWERPOINT

title1 'Salary Report by Job Title';

title2 'Sales Reps Only';

proc tabulate data=appsas.sales f=dollar12.;

class Job_Title;

var Salary;

table Job_Title=' ', Salary*(n*f=6. mean min

max);

run;

Page 30: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

30M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

• Exemple 7.3 : Ajouter une dernière slide contenant les 2 graphiques obtenus par le code ci-dessous :

VII – ODS POWERPOINT

title1 'Salary Report (Sum and Mean)';

proc sgplot data=appsas.sales;

where Country='AU';

vbar Job_Title / response=Salary stat=sum;

xaxis display=(nolabel);

run;

proc sgplot data=appsas.sales;

where Country='US';

vbar Job_Title / response=Salary stat=mean;

xaxis display=(nolabel);

run;

Page 31: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

31M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

VIII- Et le langage macro dans tout ça ???

Exemple 8 :

A partir des exemples donnés pour les fichiers xlsx et les pptx, créer un macro-programme tel que :- si Country=US ou AU alors on génère un pptx avec 1 tableau et 2 graphiques- si Country=FR ou GB alors on génère un xlsx avec 1 tableau dans un onglet et un graphique dans un second onglet-sinon on génère un fichier word avec un tableau seulement

Exécuter ce macro programme pour Country=US, puis CA, puis FR, puis DK.

Page 32: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

Envoi d’email a ajouter

M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE - Université Paris 1 Panthéon Sorbonne

32

Page 33: Chapitre 4 LA GENERATION DE SORTIES SAS AVEC LES ODS

33M. WILTHIEN - Applications SAS - 2021 Semestre 1 - Master 2 TIDE

Université Paris 1 Panthéon Sorbonne

EXERCICES

Exercice 1 : à l’aide d’une seule instruction ODS, créer 2 pdf : un pour les hommes et un pour les femmes de la table CLASS, permettant d’analyser la taille des élèves.

Exercice 2 : créer un fichier lisible dans Word avec l’analyse de la taille pour les élèves femmes de la table CLASS, en y ajoutant un commentaire en dessous du tableau.

Exercice 3 : Créer un PDF avec une page pour les hommes, une page pour les femmes, et une page avec juste ecrit : PAGE VIDE.