Annonce

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

La 4ème édition de mon ouvrage est disponible depuis le 11 avril 2019 !

Où trouver cet ouvrage ?


#1 30-10-2013 08:57:29

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

[archive] Un programme de MERGE doit être le plus simple possible !

Il y a, parmi les règles non écrites que suivent les utilisateurs de SAS, un règle très simple concernant les programmes effectuant des MERGE entre deux tables : le programme doit être le plus simple possible.

"Simple", qu'est ce que cela signifie ?

et bien c'est ce qui vous est expliqué dans la section 4.2.1 : vous triez vos tables puis vous devez avoir un programme du genre suivant :

Code:

DATA ensemble;
   SET test1 test2;
   BY id;
RUN;

La question qu'on peut se poser c'est "mais que risque-t-on si notre programme ne devait pas être aussi simple que celui présenté ici ?"

la réponse est "on risque de sévères déconvenues..."

un petit exemple :

Code:

DATA test1;
INPUT id x1 x2;
CARDS;
1  10 100
1  20 200
1  30 150
1  40 250
2  50 300
2  60 400
;

DATA test2;
INPUT id z $;
CARDS;
1 A
2 B
;

DATA ensemble;
   MERGE test1 test2;
   BY id;
   IF x1=20 THEN z="C";
RUN;

et regardons le résultat :
http://www.sas-sr.com/img/kiss.png

regardez la table ENSEMBLE créée...
Z est égal à C pour les observations n°3 et 4 et ça, c'est très embêtant...

L'objet de ce nouveau sujet des beaux mercredis va être de comprendre ce résultat. Il ne s'agit en aucun cas d'un "accident" ou d'un défaut de SAS mais simplement d'une conséquence du fonctionnement de SAS.

Si vous avez lu avec attention mon ouvrage, vous savez déjà que mon positionnement est de dire : on ne peut pas programmer correctement en SAS si on ne comprend pas son fonctionnement (ce qui vaut à mes lecteurs la section 3.1 de mon ouvrage ;-)).

Ce sujet des beaux mercredis devrait convaincre les plus sceptiques.

Pour la semaine prochaine, essayez de comprendre ce qui se passe dans le PDV lorsque vous fusionnez deux tables au moyen de MERGE. Vous pourrez normalement ensuite expliquer le résultat que nous obtenons avec le programme présenté plus haut...

à la semaine prochaine

il est possible que je poste la réponse (ou le début de la réponse) avec un peu de retard la semaine prochaine... je serai en effet présent au SAS Forum 2013 et risque d'avoir peu de temps pour poster... en passant, si vous aussi vous passez sur le SAS forum, n'hésitez pas à venir discuter avec moi... je ne serai pas bien loin du stand du Master ESA...

Ce sujet est maintenant archivé - seuls les utilisateurs inscrits de www.sas-sr.com peuvent consulter l'intégralité du sujet et les programmes qui répondent 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