Annonce

Bienvenue sur le site support de mes ouvrages d'introduction à SAS

La 4ème édition de mon ouvrage est toujours disponible !

Où trouver cet ouvrage ?


#1 24-05-2018 13:27:29

SAS-SR
Administrateur
Lieu: Université d'Orléans
Date d'inscription: 01-09-2008
Site web

[archive] Mon sujet de langage macro sous SAS

ça vous dirait de vous amuser avec le sujet d'examen de mon cours de langage macro sous SAS que j'ai proposé à mes étudiants du M1 ESA ?

alors, c'est parti !


Je viens de me découvrir une brusque passion pour le commerce extérieur de la France. Je suis donc allé sur le site de l’INSEE pour récupérer des séries d’exportations et d’importations vers les 25 pays européens vers lesquels la France commerce le plus et j’ai construit une jolie table SAS (CEXT).

Voici un extrait de cette table :

http://www.sas-sr.com/img/su_ma1.png

Les 25 séries « E » mesurent des exportations (en millions d’euros), les 25 séries « I » mesurent des importations.

Bon… pas très facile de savoir à quel pays ces chiffres se rapportent… heureusement, on dispose d’une seconde table (PAYS)

http://www.sas-sr.com/img/su_ma2.png

Que faire avec ces données… un graphique !

Voici le programme que j’ai rédigé pour avoir une idée de l’état de nos échanges commerciaux avec l’Allemagne (les tables CEXT et PAYS ont été placés dans la bibliothèque de travail au préalable).

Code:

data cext2;
   set cext;
   solde=E1-I1;
   pctco=(e1+i1)/(sum(of e:)+sum(of i:));
run;

Au cours de cette première étape DATA, je calcule un solde, différence entre les exportations et les importations. Je voulais aussi savoir la part que représente notre commerce avec l’Allemagne parmi les échanges que nous avons avec nos 25 principaux partenaires européens. Cette part est calculée tous les mois mais c’est en fait la donnée la plus récente qui va m’intéresser : 0.24154 en mars 2018, soit 24.2%.

Code:

proc means data=cext2 noprint;
   ways 1 ;
   class date;
   format date year4.;
   var e1 i1 solde;
   output out=cext3 sum= exp imp solde;
run;

je ne veux pas représenter des séries mensuelles (trop de points, on ne verrait pas grand-chose) mais des séries annuelles. Le PROC MEANS présenté ici, va me calculer ces séries annuelles dans une table de résultats appelée CEXT3.

Code:

data cext3 ;
   set cext3;
   exp=12*exp/_freq_;
   imp=12*imp/_freq_;
   solde=12*solde/_freq_;
run;

Il faut quand même que je corrige mes données : en effet, pour 2018, je n’ai que 3 mois de données et par conséquent, cette année n’est pas directement comparable aux autres années (qui, elles, contiennent 12 mois…). Aussi, j’effectue une petite correction pour permettre la comparaison.

Code:

title "Allemagne : Exportations, Importations et solde commercial";
Title2 "En mars 2018, ce pays représentait 24.2% de nos échanges";
title3 "avec nos 25 principaux partenaires commerciaux européens";
Footnote "Attention, pour 2018, on ne dispose en réalité que de 3 mois de données";
Footnote2 "pour rendre comparables les chiffres, on multiplie les données de 2018 par 12/3";
proc sgplot data=cext3 noautolegend;
   refline 0 / axis=y;
   series x=date y=exp / lineattrs=(thickness=2pt color=blue)  
                         curvelabel="Exportations" ;
   series x=date y=imp / lineattrs=(thickness=2pt color=red) 
                         curvelabel="Importations" ;
   series x=date y=solde / lineattrs=(thickness=2pt) 
                           curvelabel="Solde";
   xaxis display=(nolabel);
   yaxis display=(nolabel);
run;

et j’obtiens ceci :

http://www.sas-sr.com/img/su_ma3.png

Votre objectif est de créer deux macro-programmes :
1-    Le premier (15 points en tout) n’admet qu’un paramètre : le nom d’un pays. Vous devez obtenir le graphique caractérisant les échanges que la France a avec ce pays.
a.    Si en paramètre de votre macro, vous mettez ALLEMAGNE, Allemagne, ou allemagne, le graphique doit être produit. (2 points)
b.    Si le pays n’existe pas ou qu’il est mal orthographié (Grece au lieu de Grèce), un message doit apparaître dans le journal indiquant ceci :
Le pays que vous avez demandé n’est pas dans la liste des pays possibles (ou alors, vous l’avez mal orthographié…). Voici la liste des pays pour lesquels le macro-programme peut produire un graphique »
        Et bien entendu, il doit apparaître une liste des pays possibles. (3 points)
c.    Je reprends ici le graphique en encadrant les éléments qui vont devoir d’adapter automatiquement à votre demande.
http://www.sas-sr.com/img/su_ma4.png

Si j’actualise la table en ajoutant les données d’avril 2018, les titres et pied de page doivent automatiquement s’adapter. Bien entendu, lorsque la donnée la plus récente est relative à un mois de décembre, puisqu’il n’y a plus de corrections à effectuer, je ne dois pas avoir de pied de page sous le graphique. (1 point pour le titre 1, 3 points pour le titre 2, 3 points pour le pied de page).
Et bien entendu, le graphique produit doit être le bon graphique… (3 points).

2-    Le second macro-programme doit produire les 25 graphiques représentatifs des échanges commerciaux que la France entretient avec ses 25 principaux partenaires européens. (5 points)

amusez vous bien


Ce sujet est maintenant archivé - seuls les utilisateurs inscrits de www.sas-sr.com peuvent consulter l'intégralité du sujet et les réponses aux questions posées.
pour vous identifier, suivez ce lien
pour vous inscrire, suivez ce lien

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB
Traduction par FluxBB.fr
Flux RSS