juillet 5, 2009
Sous SAS, l’instruction globale SYMBOLE sert lors de la construction de graphiques. Une de ces options (value= ou v=) permet de préciser le symbole représentant un point sur un graphique. Voici la liste des différentes valeurs possibles.
1. Les croix
plus : un signe plus
star : étoile à six branches
: (deux points, colon) : étoile à 8 branches
= (signe égale, equal) : une étoile vide
2. Les lettres
x, y, z
3. Les carrés
square (carré, square) : carré vide
hash (dièse, hash) : un carré avec les extrémités des lignes qui se prolonge
_ (tiret bas, underscore) : carré vide déformé
4. Les triangles
triangle : un triangle vide
5. Les points et les ronds
paw : 4 points formant un carré
point : un point
dot : un cercle rempli
circle : un cercle vide
+ (plus, plus) : cible ou rond avec un signe plus dedans
- (tiret du milieu, hyphen) : un point dans un cercle
, (virgule, comma) : point encerclé complété par une flèche
6. Les symboles de carte
diamond : losange vide
$ (symbole du dollar Alt+0236, dollar sign) : la carte de carreau
“ (guillemets doubles, double quotes) : pic
£ (symbole de la livre sterling Alt+0163, pound sign) : cœur
% (pourcentage, percent) : trèfle version 1
& (et, ampersand) : trèfle version 2
7. Le symbole des hommes et femmes
* (étoile, asterisk) : symbole de la femme
> (signe supérieur, greater than) : symbole de l’homme
@ (arrobas, at) : symbole de l’homme avec deux traits sur la tête
8. Les autres symboles
‘ (guillemet simple identique à l’apostrophe sur le clavier français ou single quote) : cela ressemble à une fleur de lys
. (point, period) : un semblant de 4
< (symbole inférieur, less than) : un semblant de lettre h
/ (barre incliné avant, slash) : trident
? (point d’interrogation, question mark) : un semblant de lettre P
( (parenthèse ouverte, left parenthesis) : croissant de lune
) (parenthèse fermée, right parenthesis) : un cercle avec trois traits sur l’extérieur, symbole du point d’observation sur une carte cartographique
Lectures complémentaires
Publié dans Graphiques, Par thématiques | Taggé graphique, informatique, programmation, SAS, symbole | Leave a Comment »
juillet 2, 2009
Dans un précédent article Copier la structure d’un data set et se séparer des données, nous avons vu comment récupérer la structure d’une table (data set) de référence, c’est-à-dire copier les caractéristiques des variables sans les données. Ici, vous verrez comment créer un data set, appelé EMPTY, sans données et sans se baser sur un data set de référence.
L’intérêt est de souvent de pouvoir ensuite empiler des data sets ayant des longueurs de variables. En effet la longueur d’une variable rencontrée dans le premier data set sera la longueur de référence. Il ne faut pas qu’elle soit plus petite que celle du data set suivant. Autrement le texte des observations d’après est coupé (truncated).
1. Avec une étape data
Au choix, vous avez l’instruction ATTRIB ou les différentes instructions LABEL, LENGTH, FORMAT, INFORMAT pour créer les variables du data set.
data empty;
attrib var_text label=‘Var. caractère, longueur 20′ length=$20
var_num_dt label=‘Var. numérique, longueur 8′ format=date9.;
stop;
run;
Dans la log, SAS précisera qu’aucune valeur n’a été donné aux variables VAR_TEXT et VAR_NUM_DT.
NOTE: Variable var_text is uninitialized.
NOTE: Variable var_num_dt is uninitialized.
2. Créer un data set vide avec la procédure SQL
La procédure SQL
proc sql;
create table empty
(
var_text char(20) label=‘Var. caractère, longueur 20′ ,
var_num_dt num label=‘Var. numérique, longueur 8′ format=date9.
);
quit;
3. Voir le résultat
J’ai choisi d’ajouter l’option VARNUM à la procédure PROC CONTENTS pour afficher les données dans l’ordre
proc contents data=empty varnum;
run;
La variable VAR_TEXT apparaît en premier. Il s’agit d’une variable alphanumérique de longueur 20 sans format et ayant pour libellé : Var. caractère, longueur 20.
La seconde variable VAR_NUM_DT est numérique, de longueur 8. Le format DATE9 est appliqué dessus de manière permanente. Le libellé de cette variable est : Var. numérique, longueur 8.
The CONTENTS Procedure
Variables in Creation Order
# Variable Type Len Format Label
1 var_text Char 20 Var. caractère, longueur 20
2 var_num_dt Num 8 DATE9. Var. numérique, longueur 8
Lectures complémentaires
Publié dans Data Step, Les procédures, Par thématiques, SAS débutant, Tous les niveaux, proc sql | Taggé créer, Data Step, dataset, informatique, proc sql, programmation, SAS, vide | Leave a Comment »
juin 28, 2009
N’avez-vous jamais eu le sentiment de devoir taper toujours un même code sous SAS avec ODS TAGSETX.EXCELXP ou encore de ne pas vous rappeler la syntaxe exacte pour un PROC IMPORT ?
Une solution est de créer un programme de référence et de faire du copier/coller. Une autre solution, propre à SAS Windows, est de sauvegarder chaque code sous une abréviation et d’utiliser au moment venu cette abréviation. Voici comment cela marche.
1. Créer une abbréviation
Pour créer un abréviation, choisissez Tools/Add Abbreviation... dans le menu.

Ici, je choisi de créer l’abréviation report_xls. J’ajoute par copier/coller le code propre au tagsets.excelxp dans le second champs.

2. Comment utiliser l’abréviation
Dans l’éditeur SAS, saisissez le nom de l’abréviation. En tapant sur entrer le mot est remplacer le texte sous-jacent.
3. Modifier une abréviation existante
Si vous créer une nouvelle abréviation et lui donnez le même nom qu’une déjà existante, SAS vous demandera si vous souhaitez remplacer celle existante ou non.

4. Visualiser les abréviations existantes et les supprimer
Pour voir les abréviations existantes, aller dans le menu et choisissez Tools/Keyboard Macros/Macros…

Il ne vous reste plus qu’à sélectionner l’abréviation à supprimer et de cliquer sur Delete.

Source : http://www.pharmasug.org/content/view/132/153/
Publié dans ODS, Par thématiques, SAS débutant, Tous les niveaux, Windows | Taggé abbreviation, abréviation, ajouter, programmation, SAS, tools, Windows | Leave a Comment »
juin 24, 2009
La liste des polices de caractères pour construire des graphiques sous SAS a longtemps été très limitée. Depuis SAS a racheté de nouvelles polices se rapprochant des classiques comme Arial. Mais pour l’instant, voici les styles disponibles depuis de nombreuses années. La mise en image de ces polices devrait vous aider à faire un choix plus rapide.
1. Trois fonts avec ses variantes
Ajoutez aux mots CENT, SWISS, ZAPF les lettres
- l pour une version comprimée,
- x pour une version étendue/allongée,
- b (bold) pour mettre en gras,
- i (italic) pour mettre en italic,
- e (empty) pour avoir un un font blanc.



2. Quelques autres styles
A ces trois premières polices s’ajoutent:
- BRUSH,
- SIMPLEX/DUPLEX/COMPLEX/TRIPLEX,
- SCRIPT/CSCRIPT
- GERMAN/GITALIC/OLDENG
- ITALIC/TITALIC

Publié dans Data Presentation, Etapes, Graphiques, Par thématiques, SAS débutant, Tous les niveaux | Taggé font, graph, graphique, informatique, police de caractères, programmation, SAS | 1 commentaire »
juin 22, 2009
Vous trouverez ci-dessous le communiqué de Stéphane Tufféry qui vient de sortir le livre :
Etude de cas en statistique décisionnelle


1. Communiqué du mercredi 17 juin 2009
Bonjour à toutes et tous,
J’ai le plaisir de vous annoncer la parution cette semaine aux éditions Technip d’un nouvel ouvrage de statistique et data mining : Etude de cas en statistique décisionnelle
.
Il met en pratique les principes de la statistique dans une étude de cas répondant à deux problématiques classiques :
- la construction d’une segmentation de clientèle ;
- l’élaboration d’un score d’appétence à l’achat d’un produit.
Les données utilisées proviennent du secteur de l’assurance, mais l’étude réalisée peut se transposer à d’autres domaines. Les données sont disponibles sur Internet, notamment sur le site des Éditions Technip où elles sont accompagnées des programmes présentés dans l’ouvrage. Le lecteur pourra ainsi compléter sa lecture par des exercices personnels ou appliquer ces programmes à ses propres données.
L’étude de cas est menée avec le logiciel SAS, qui est le plus complet et le plus répandu des logiciels commerciaux, et qui permet de traiter de façon optimale tous les sujets abordés dans l’ouvrage. Les principales procédures de SAS/STAT sont passées en revue, et nous montrons que les outils de programmation SAS (macros, ODS, etc.) permettent de conjuguer rigueur et productivité. Bien entendu, les principes de modélisation exposés dans l’ouvrage ne sont pas propres à SAS, et la démarche suivie pourra intéresser le lecteur qui dispose d’un autre logiciel.
Pour des rappels sur la statistique, le lecteur pourra se référer à notre précédent ouvrage chez le même éditeur : Data Mining et statistique décisionnelle.
Bien cordialement,
Stéphane Tufféry
2. Vos liens
Pour télécharger les compléments du livre : www.editionstechnip.com
Pour commander l’ouvrage : www.amazon.fr
Publié dans Autour de SAS, Lectures | Taggé étude de cas, décisionnelle, informatique, programmation, SAS, statistique, stéphane, tufféry | Leave a Comment »
juin 18, 2009
Ici, je vous propose d’illustrer l’usage de l’option notoc_data dans l’instruction ODS RTF sous SAS. Celle-ci empêche la création des points de références nécessaires à la création d’une table des matières. En effet, ces points affectent l’affichage des tableaux sur l’écran. Comment dissimuler/supprimer ces points pour améliorer la lisibilité de vos documents RTF ?
1. L’affichage par défaut
Pour pouvoir ajouter une table des matières (Table of Contents, TOC) dans un document Word, des marques aux différents points de références appelés ancres (anchers) au fil du document doivent exister. Ces points n’apparaissent pas à l’impression.
Lors de la création d’un fichier .rtf par SAS, ces points de référence sont automatiquement créés. Et cela peut donner une distorsion des tableaux comme dans l’exemple ci-dessous.
ods listing close;
ods rtf file=‘C:/sasref/toc.rtf’;
proc print data=sashelp.class;
run;
ods rtf close;
ods listing;

Avec un PROC PRINT, le point de référence ressemble à ceci :
{tc “print” \f C \l 1}{tc “Data Set SASHELP.CLASS ” \f C \l 2}
Avec un PROC REPORT, le point de référence se présente est :
{tc “Report ” \f \C \l 1}{tc “Detailed and/or summarized report ” \f C \l2}
Pour palier à ce problèmes deux solutions sont envisageable.
- Désactiver l’affichage des symboles comme le passage à la ligne
- Ne pas créer de points de références pour la table des matières
2. Désactiver l’affichage des symboles
Il suffira de cliquer sur le bouton servant à l’affichage des symboles comme le passage à la ligne, la tabulation,… pour ne plus voir les points de références utilisés si une table des matières est créée.

3. Ne pas créer de points de référence pour la table des matières avec l’option notoc_data
Il vous suffira d’ajouter l’option notoc_data dans l’instruction ODS RTF de départ pour ôter les points de référence servant pour la création d’une table des matières.
ods listing close;
ods rtf file=‘C:/sasref/toc.rtf’ notoc_data;
proc print data=sashelp.class;
run;
ods rtf close;
ods listing;

Publié dans ODS, Par thématiques, SAS débutant, Tous les niveaux | Leave a Comment »
juin 14, 2009
La syntaxe de l’ODS PDF sous SAS sert à la création d’un fichier au format pdf. Ici, vous verrez comment organiser les différents blocs de textes au moyen de ODS LAYOUT et ODS REGION. Cela sera aussi l’occasion de faire un rappel sur PROC TEMPLATE pour changer les marges d’un document et de se servir de l’instruction ODS PDF TEXT=.
1.Changer les valeurs par défaut
Par défaut, les sorties sous SAS affichent la date, un titre et chaque page est numérotée. Pour enlever ces informations, l’instruction TITLE et les options NODATE, NONUMBER sont utilisées.
* 1. Setting;
options nodate nonumber;
title;
Par défaut, les marges des feuilles A4 ne sont pas de zéro. Pour les changer, il faut utiliser un style différent à définir dans une procéduren PROC TEMPLATE. Ici, nous créons un style appelé REPORT_PDF qui est comme le style RTF de SAS à une exception prêt : les marges du document sont de zéro centimètre.
*2. Créer le template REPORT_PDF;
proc template;
define style styles.report_pdf;
parent=styles.rtf;
style body from Document /
bottommargin = 0cm
topmargin = 0cm
rightmargin = 0cm
leftmargin = 0cm;
end;
run;
Note : vous pouvez aussi choisir de rendre non défini les marges au niveau du proc template dans un premier temps. Ensuite, vous pourrez définir la valeur dans une instruction globale OPTIONS.
proc template;
define style styles.report_pdf;
parent=styles.rtf;
style body from Document /
bottommargin = _undef_
topmargin = _undef_
rightmargin = _undef_
leftmargin = _undef_;
end;
run;
options bottommargin=0cm topmargin=0cm rightmargin=0cm leftmargin=0cm;
Ici, j’ai choisi d’ajouter manuellement du texte au moyen de l’ODS PDF TEXT dans le fichier PDF pour illustrer l’usage d’ODS LAYOUT/ODS REGION. Au niveau de PROC TEMPLATE, il est possible de préciser la police de caractère et la taille. Ici je choisi une police Arial de taille 12pt.
proc template;
define style styles.report_pdf;
parent=styles.rtf;
style body from Document /
bottommargin = 0cm
topmargin = 0cm
rightmargin = 0cm
leftmargin = 0cm;
style usertext from usertext /
font_size = 12pt
font_face = ‘Arial’;
end;
run;
2. Créer le fichier
a. ODS LISTING : Stopper l’envoi dans la fenêtre OUTPUT et réactiver cette destination à la fin
ods listing close;
ods listing;
b. ODS PDF : Envoyer les résultats à venir dans un fichier PDF, appeler le style REPORT_PDF pour ne pas utiliser le style par défaut et stopper la destination en fin de programme.
ods pdf file=‘C:/sasref/ods_layout.pdf’ style=report_pdf;
ods pdf close;
c. ODS LAYOUT : Indiquer à SAS l’endroit où ODS REGION pourra être utilisé en précisant le début de la zone avec ODS LAYOUT START et la fin avec ODS LAYOUT END .
ods layout start;
ods layout end;
4. ODS REGION : préciser le point de départ du cadre avec X= et Y=. Puis donner la largeur (width) et la hauteur (height) du cadre.
ods region x=1cm y=1cm width=7cm height=2cm;
ods region x=13cm y=3cm width=7cm height=2cm;
ods region x=1cm y=5cm width=15cm height=1cm;
ods region x=4cm y=7cm width=15cm height=19cm;
Le code complète
ods listing close;
ods pdf file=‘C:/sasref/ods_layout.pdf’ style=report_pdf;
ods layout start;
*cadre 1 : adresse expéditeur;
ods region x=1cm y=1cm width=7cm height=2cm;
ods pdf text=‘Véronique Bourcier’;
ods pdf text=‘verronique.bourcier@sasreference.fr’;
ods pdf text=‘www.sasreference.fr’;
ods pdf text=‘Blog pour se former au logiciel SAS’;
*cadre 2 : adresse destinaire + date;
ods region x=13cm y=3cm width=7cm height=2cm;
ods pdf text=‘Lecteurs de SAS’;
ods pdf text=‘Rue des curieux’;
ods pdf text=‘00000 Francophones’;
ods pdf text=’ ‘;
ods pdf text=‘14 Juin 2009, Cologne’;
*cadre 3 : object;
ods region x=1cm y=5cm width=15cm height=1cm;
ods pdf text=‘Objet: Exemple avec ODS LAYOUT/REGION’;
*cadre 4 : contenu de la lettre;
ods region x=4cm y=7cm width=15cm height=19cm;
ods pdf text=‘Madame, Monsieur’;
ods pdf text=‘ ‘;
ods pdf text=“Le blog www.sasreference.fr est votre outil pour découvrir et redécouvrir la syntaxe de SAS. C’est aussi une communauté d’utilisateurs se retrouvant sur Facebook pour échanger sur de multiples thématiques :”;
ods pdf text=‘ ‘;
ods pdf text=‘+ Certification SAS’;
ods pdf text=‘+ Mémoire de stage’;
ods pdf text=‘+ Pharmaceutique’;
ods pdf text=‘+ Banque/assurance’;
ods pdf text=‘+ Milieu hospitalier’;
ods pdf text=‘+ Statistiques publiques’;
ods pdf text=‘+ Recherche’;
ods pdf text=‘+ Enseignement’;
ods pdf text=‘etc. ‘;
ods layout end;
ods pdf close;
ods listing;
3. Voir le résultat

Lectures complémentaires
Publié dans ODS, Par thématiques, SAS intermédiaire, Tous les niveaux | Taggé informatique, marge, ods layout, ods pdf, ods pdf text, ods region, proc template, programmation, SAS | Leave a Comment »
juin 11, 2009
Des fichiers au format RTF (lisibles par word) ou PDF se créent sous SAS au moyen de la syntaxe inclues l’Output Delivery System (ODS). L’en-tête et le pied de page sont ajoutés au moyen des instructions TITLE et FOOTNOTE. Ici, vous verrez quel texte mettre dans l’instruction TITLE pour ajouter une image dans l’en-tête d’un fichier PDF.
1. Créer un fichier PDF
La table (dataset) CLASS de la bibliothèque SASHELP est affichée dans la sortie au moyen de l’instruction PROC PRINT.
Les instructions ODS LISTING CLOSE/ODS LISTING : Par défaut la table est envoyée dans la fenêtre OUTPUT de SAS, souvent appelée fenêtre LISTING. Cette destination ne nous intéresse pas. Elle est désactivée le temps du PROC PRINT au moyen de l’instruction ODS LISTING CLOSE et est réactivée à la fin avec ODS LISTING.
Les instructions ODS PDF/ODS PDF CLOSE : A la place, la première instruction ODS PDF définie le nom du fichier à créer. ODS PDF CLOSE ferme le fichier après y avoir écrit les informations du PROC PRINT.
ods listing close;
title ‘Mon logo’;
ods pdf file=‘C:/sasref/image_entete.pdf’;
proc print data=sashelp.class;
run;
ods pdf close;
ods listing;
L’instruction TITLE : L’instruction TITLE précède la première l’instruction ODS PDF. Si vous voulez la mettre après, je vous conseille de prendre l’habitude d’indiquer à SAS de prendre le changement en compte en ajoutant une instruction ODS PDF juste après. Ainsi vous ferez appel à la même syntaxe avec ODS PDF et avec ODS RTF.
ods listing close;
ods pdf file=‘C:/sasref/image_entete.pdf’;
title ‘Mon logo’;
ods pdf;
proc print data=sashelp.class;
run;
ods pdf close;
ods listing;
2. Utiliser le style pour modifier la mise en page
L’image utilisée pour l’exemple est :

Pour changer la mise en page, il faut des styles. Les styles sont introduits par la lettre S. Afin que SAS fasse la différence entre un texte contenant la lettre S et un style, il faut faire précéder ce S d’un symbole.
Ici, l’accent circonflexe est choisi comme symbole précédent la lettre S pour définir un style. Pour le dire à SAS, il faut passer par l’instruction ODS ESCAPECHAR.
Les différents styles sont ensuite définis entre accolades.
title “^S={}”;
Deux styles parmi d’autres :
- PREIMAGE= donnera le chemin d’accès à l’image.
- JUST= indiquera l’alignement du titre (LEFT pour la gauche, CENTER pour le milieur et RIGHT pour la droite).
ods escapechar=’^';
ods listing close;
title “^S={just=left preimage=’C:/sasref/logo.jpg’}”;
ods pdf file=‘C:/sasref/image_entete.pdf’;
proc print data=sashelp.class;
run;
ods pdf close;
ods listing;
Important : si vous rencontrez des difficultés avec une image au format .GIF, essayez avec une image au format JPG.
Cette syntaxe ne fonctionne pas avec ODS TAGSETS.EXCELXP.
3. Voir le résultat

Lectures complémentaires
Publié dans ODS, Par thématiques, Tous les niveaux | Taggé logo, ODS, pdf, preimage, programmation, rtf, SAS, title | Leave a Comment »
juin 7, 2009
L’association Information et Management (AIM) organise en collaboration avec Reims Management School (RMS www.reims-ms.fr, France) et l’Institut des Hautes Etudes de Management (HEM www.hem.ac.ma, Maroc) et en partenariat avec l’Ecole Mohammadia des Ingénieurs (EMI www.emi.ac.ma, Maroc) son 14ème colloque mercredi/jeudi/vendredi prochain à Marrakech avec pour thème :
Pratiques des Systèmes d’Information (SI) aux services des entreprises ? Perspectives et réalités.
10-12 juin 2009
Extrait du site :
Il s’adresse à tous les enseignants-chercheurs, responsables de formation, praticiens s’intéressant au management des technologies de l’information et à la transformation des entreprises.
Il se veut ouvert à la communauté scientifique internationale. Les langues officielles du congrès seront le français et l’anglais.
L’inscription sur place est possible.
Les interventions durent de 15à 20 minutes suivies de 15 à 20 minutes d’échange avec l’auditoire. Le description des séances qui suivent sont en parallèle. A vous de faire le choix qui vous correspond le mieux.
1. Programme du mercredi (voir l’intégralité du programme de la journée)
- La contribution des actifs immatériels du système d’information à la performance
organisationnelle : Cas des grandes entreprises françaises.
- Les effets de l’utilisation de la messagerie électronique sur les relations hiérarchiques
- Référentiel et contribution à la performance du SI : le cas ITIL
- Qualité des systèmes d’information comptables et facteurs contextuels : effets sur la performance des entreprises tunisiennes
- Les conditions de développement de la ressource connaissance, chez les membres d’une équipe de projet dans le cadre d’une fusion
- Le SI et son appropriation par les acteurs favoriserait t-il la résorption des crises ?
- L’impact des Facteurs relationnels inter-organisationnels sur l’alignement des systèmes d’information au sein d’une supply chain
- Quelle contribution des technologies de la communication (TC) à l’improvisation organisationnelle en situation de crise ? Une analyse des interactions
- La pertinence de l’utilisation du Benchmarking Interne pour l’animation du Réseau Bancaire
(Cas d’un groupe d’agences bancaires marocaines).
- Les déterminants de l’acceptation d’un dossier de travail électronique par les auditeurs d’un «Big Four» : Rôle modérateur du sexe et du grade
- Les déterminants de la recherche pré achat et de l’achat sur Internet
2. Jeudi, 10h45-12h25 (voir l’intégralité du programme de jeudi)
Externalisation & Partage des SI
- Ne pas externaliser son SI, une stratégie à contre courant ? Le cas du Groupe LDLC
- IT outsourcing and firm’s characteristics : empirical evidence from Luxembourg
- Les déterminants relationels et contextuels de l’externalisation des SI
- Discrepancies between expectation and evaluation results of IS shared services
Gestion des connaissances
- La dynamique de création de connaissances dans les processus d’innovation : Analyse comparée de quatre études de cas dans le secteur de la santé électronique
- Les pratiques de gestion des connaisances en entreprise : une analyse par le système d’activité
- Apprentissage inter-organisationnel et supply chain management : vers une gestion des connaissances partagée
- Organisational design and system for knowledge Exchange : The Hau Ba mode
SI & PME
- Impact des capacités TI sur la performance de PME délocalisant leur production
- TPE et systèmes d’information : Entre innovation et adaptation du business model
- Vers une implication et une action des dirigeants de PME dans la sécurité de leur Système d’information
- Reprise de PME et Systèmes d’Information : une ignorance réciproque
Décision & Veille
- Une approche systémique de la veille stratégique… entre formel et informel
- Rôle du système d’information dans la prise de décision stratégique adaptée à la complexité
- Comment les managers interprètent les informations à caractère anticipatif
- Rationalité des experts et traitement de l’erreur
Management de projets
- Proposition d’une grille d’analyse des activités collectives pour le management des projets collaboratifs
- Gestion des conflits et équipes projets TI : la nécessaire prise en compte des controverses
- La construction d’un modèle d’aide à la sélection de solution d’intégration des Systèmes d’Information à partir d’une approche optionnelle
- L’open source est-il un modèle de développement logiciel efficace ?
Approche organisationnelle des ERP
- Intégration des usages en phase post-projet avancée : Le risque de glissement de fonction
- La dimension sociale de l’alignement stratégique des ERP : définition et proposition de mesures
- Considerations on ERP system upgrade timing in the light of vendor’s and customer’s interests
- Mise en place d’un ERP transformation de l’entreprise et dynamique de l’alignement
Communautés & TI
- Communauté créative versus communauté virtuelle. Quelles pratiques informationnelles pour soutenir la créativité organisationnelle ?
- Réseaux Sociaux Numériques : revue de littérature et perspective de recherche
- Les capacités relationnelles des technologies de l’information : Le concept de capital technico-social a-t-il un sens ?
3. Jeudi, 15h45-17h25 (voir l’intégralité du programme de jeudi)
Adoption des TI
- L’effet de l’obéissance à l’autorité et du collectivisme sur la décision d’utilisation des TIC dans la culture arabe
- Facteurs explicatifs des intentions d’adoption du gouvernement électronique par les PME
- Managerial Activity as a function of information interferences organisational changes
- L’usage de l’Internet dans les entreprises de services : Le cas des petits et moyens cabinets d’expertise comptable
Projets SI
- Contribution des valeurs du système d’Information à la performance organisationnelle
- Echecs lors des phases de post-adoption, CRM et limites des démarches traditionnelles de changement : intérêt d’une réflexion participative sur l’anticipation des impacts induits par les TIC et sur les e-transformations
- Les Systèmes d’Information au service de la Responsabilité Sociale d’Entreprise
- Building an Information System of competencies management : a story of compromises
SI & RH
- Systèmes d’information, contrôle des tâches et management des activités de service. Une analyse à partir de l’exemple des centres de relation client
- Choisir une profession liée aux T.I. : une approche par la pragmatique du goût
- Traditional vs 2.0Information Systems in the Job-Market-Place domain. Differences and foresight Convergence
- Restrictions technologiques perçues et essai d’innovation avec les TI : Le rôle modérateur de l’autonomie
Epistémologie & Méthodologie
- Les approches critiques en Systèmes d’Information : de la sociologie de la domination à l’éthique de l’émancipation
- Un regard critique sur l’approche structuration-niste en SI: une comparaison avec l’approche foucaldienne
- Construire un article de recherche en SI : aspects historiques, épistémo-logiques et pratiques
- Donner du sens à ses données qualitatives en Systèmes d’Information : deux démarches d’analyse possibles à l’aide du logiciel NVivo 8
SIIO
- Proposition d’un cadre de conception de démarches de GC pour la chaîne logistique inter-organisationnelle
Cas de la société BONFIGIOLI
- Structure des SIIO : de l’émergence des formes hybrides électroniques
- Comment la traçabilité crée un Acteur-Réseau : le cas des caves coopératives vitivinicoles
- Complémentarité SIIO et investissement relationnel : Etude de cas exploratoire d’un SIIO dans le secteur du meuble
SI & secteur de la santé
- Management des systèmes d’Information Hospitaliers : des questionnements spécifiques
- Les facteurs affectant la résistance des utilisateurs à l’adoption des TIC dans les établissements de santé privé
- An actor-network approach to the study of modernisation processes : The case of the health care scheme in Morocco
- Systèmes d’information en santé : Classification, avènement du dossier santé personnel et apport de la science des services
Audit, SI et Normalisation
- La gestion conjointe coûts-qualité-délai dans un référentiel informatique. Le cas d’ITIL
- Le modèle du risque d’audit appliqué dans un environnement complexe de Technologies de l’Information : revue de la littérature et perspectives de recherche
- La pratique d’audit et de conseil en Systèmes d’Information et Nouvelles Technologies au sein des PME : entre complexité et dynamique
- Management des processus et normalisation : Une étude exploratoire
4. Vendredi 10h45-12h25 (voir le programme de vendredi)
Direction des Systèmes d’Information
- Vers une meilleure compréhension de la transformation de la fonction TI dans les organisations
- Pilotage de la performance et modes de contrôle de la Direction des Systèmes d’information : analyse des échecs et évolutions
- Les décisions stratégiques en matière de systèmes d’information : la crédibilité à l’épreuve de la prise en compte de la faisabilité
- IS Alignement improved with co-evolutionary Principles
SI et Création de valeur
- Création de valeur par le Crowdsourcing : deux voies possibles
- La capacité d’absorption des entreprises de l’open source 2.0 : une étude de cas chez le prestataire et le client
- Factors influencing the business value of IS R&D : A South African study
- L’orientation Client : Application du modèle d’alignement stratégique des Technologies et Systèmes d’Information
E-learning
- Organisation cognitives et apprentissage à distance
- L’adoption du e-learning par les apprenants : une analyse empirique par la méthode des équations structurelles
- Les déterminants de l’utilisation du système e-learning par les étudiants
- Effet de la couleur sur la mémorisation des contenus de formation en ligne
Analyses sectorielles : Banque et Tourisme
- Intérêt du dirigeant de PME touristique pour les TI : quels effets sur l’utilisation et la performance ?
- L’investissement en Technologies de l’Information et productivité des banques tunisiennes
- Hétérogénéité des usages d’Internet dans le secteur du tourisme : proposition d’une approche SI orientée PME hôtelières
Retour d’expérience en SI
- Le cas “Moneo” ou la chronique de l’échec annoncé d’une bonne idée
- Du Rififi dans le MBA : Activité Pédagogique de Management de Projet
- Scénarios pédagogiques autour d’un progiciel de gestion intègré : le cas “Zenta”
- Management de connaissances en situation de fusion : Cas de Nokia Siemens Networks
Recherche SI au Maroc
- Vers une architecture d’intégration sémantique des composants métier
- Une démarche d’audit informatique
- Sécurité des systèmes d’information, démarche de mise en oeuvre. Etude de cas d’une grande entreprise marocaine
- Modèle dynamique de la E-stratégie inspiré de l’Urbanisation des systèmes d’information
Univers virtuels & équipes virtuelles
- La recherche sur les univers virtuels : une proposition de démarche fondée sur l’activité
- Mobilité et bureaux virtuels – Un modèle d’adoption
- Contribution du e-leadership à la gestion de la confiance : Effet modérateur de la virtualité
- Classic issues faced by virtual teams : perspectives from Open Source software communities
5. Vendredi 15h45-17h25 (voir le programme du vendredi)
Pédagogie & SI
- Intégration des Technologies de l’Information et de la Communication dans la pratique pédagogique d’enseignants universitaires
- Difficulté du passage de l’adhésion à l’usage d’une technologie : le cas des logiciels anti-plagiat
- Utilisation de la technologie dans une formation e-learning : le rôle de l’environnement personnel de l’étudiant
- Application de la théorie “Task-Technology Fit” au cas des e-candidatures universitaires
SIIO
- Achats à l’international et e-SRM : du bricolage à l’alignement
- Des formes d’intégration intra-organisationelles aux formes d’intégration inter-organisationnelles : analyse du cas des catalogues électroniques
- Impact de la technologie RFID sur la synchronisation du Supply Chain : Une étude exploratoire
- Michael Porter ou la recherche d’un avantage concurrentiel au cœur d’outils de gestion interorganisationnels partagés. Le cas d’une place de marché électronique dans la grande distribution
Communication Electronique
- Quand les TIC réussissent trop bien dans les organisations : le cas du courrier électronique chez les managers
- Nouvelles perspectives de l’utilisation de la communication électronique dans la relation hiérarchique : accessibilité versus disponibilité
- The Neglected Problem : How to Really Benchmark the Effectiveness of ICT Based Services? A Case Study
- “Hell is other people” Information Overload, Media Choice and Introversion / Extraversion
Projets & Management des projets
- Toward a Risk Acceptance Model for IS Development Projects
- Architecturing Entreprise Informations Portals For Navigation
- An Agile Method, a Contractual Relationship and Distance : An Unlikely Recipe for System Development Success
- Approche discursive d’infrastructure informationelle : un exemple avec les standards financiers comme objets frontières
E-business
- Agents virtuels, confiance envers les sites web et intentions comportementales des internautes
- Analyse du discours des éditeurs d’e-achat
- Acceptation et usage des systèmes de paiement électronique de détail par les consomateurs : une proposition d’un modèle théorique
- Le Sponsorship aide ou frein à l’appropriation des systèmes d’information ? Une application aux portails intranet
Recherche en cours
- Multi-firm IT Value Creation in the Technical Support Services Value Chain
- Apport des méthodes d’analyse des risques pour la mise en place d’un processus de veille stratégique
- Trajectoires appropriatives et engagement organisationnel : L’approche archétypique revisitée
- Le rôle du dirigeant dans l’adoption des TIC : une étude de districts industriels
- Construction d’une solution logicielle dans le cadre d’une démarche d’urbanisation
- Revisiter la notion d’appropriation : pour une application au cas des ERP
- Grille d’évaluation des facteurs clés dans la mise en oeuvre de systèmes d’information dans les organisations
- Déploiement Agile d’ERP Open Source en PME
6. Tarif pour les actes du colloque et deux déjeuners (Tous les détails des tarifs)
Enseignants-chercheurs : Comptez 150 euros pour les enseignants-chercheurs locaux et 220/270 euros pour les autres enseignants-chercheurs.
Professionnels : Pour les professionnels, cela varie entre 200 et 350 euros.
Doctorants : Les doctorants locaux pourront participer à l’événement pour 50 euros et les autres pour 160/180 euros.
La soirée de gala est de 50 euros pour tous.
7. Vos liens
En savoir plus sur cet événement
Read more about it
Publié dans Agenda, Autour de SAS | Taggé colloque, informatique, marrakech, programmation, SAS, SI, systèmes d'information | Leave a Comment »
juin 6, 2009
Cette semaine un nouveau CV a été publié sur le blog dans le cadre d’une recherche d’emploi en tant qu’ingénieur étude et développement junior disponible à partir de juillet.
1. Expérience professionnelle
Après une formation au CNAM, notre candidat activité de consulting dont dernièrement quatre mois avec SAS Enterprise Guide dans le domaine bancaire et trois mois en assurance sous SAS 9.1.3.
Sofinco (mars-juin 2009) : réalisation des études de marketing bancaire : ciblage des clients
détenteurs d’un crédit amortissable ou revolving pour animation, équipement
des nouveaux clients, répondre aux demandes ponctuelles des caisses
régionales de Crédit Agricole.
Optimind (sept-déc 2008) : Développement sur SAS d’un outil de modélisation, d’analyse et de
notation des encours chez Natixis assurances, contrat emprunteur.
2. Formation terminée en septembre 2007
La première expérience en SAS a été acquise lors d’un stage de six mois sous SAS en 2006 (fév.-juillet 2006).
Puis, il a suivi un an de formation au CNAM (sept. 2006-sept. 2007) avec pour thématiques :
- Statistiques
- Econométrie
- Data Mining
- Evaluation économique des stratégies de santé
- Anglais professionnel
Pour compléter sa formation, il a suivi une formation de deux jours en SAS macro chez Educasoft.
3. Informations de référence
Rachid DANI
Email : rachid.dani@laposte.net
Tel. : (+33) 06.25.11.89.76
CV : format .pdf
4. Lectures complémentaires
Publié dans CVs Emploi, Samedi Emploi | Taggé cv, emploi, programmeur, recherche, samedi, SAS | Leave a Comment »
juin 4, 2009
Créer un fichier XML ouvrable avec Excel est possible avec l’ODS TAGSETS.EXCELXP de SAS. Il est important de disposer des dernière mises à jour des tagsets de EXCELXP pour utiliser son potentiel. Quelle version utilisez-vous actuellement ? Comment faire la mise à jour ?
1. Quelle version de TAGSETS.EXCELXP utilisez-vous ?
Pour connaître la version de TAGSETS.EXCELXP que vous utilisez, consultez la log après avoir exécuté ce PROC TEMPLATE.
proc template;
source tagsets.excelxp;
run;
2. Comment faire les mises à jour ?
Allez sur la page http://support.sas.com/rnd/base/ods/odsmarkup/ pour trouver le code à exécuter dans SAS.
Par exemple, pour la mise à jour 1.86 (15 avril 2008), copiez dans votre éditeur SAS le code http://support.sas.com/rnd/base/ods/odsmarkup/excltags.tpl et exécutez-le.
En soumettant une nouvelle fois la procédure PROC TEMPLATE, la log nous indique que la version 1.86 est celle actuellement en place.

Publié dans Data Presentation, Etapes, Les procédures, ODS, Par thématiques, proc template | Taggé excelxp, informatique, mise à jour, ODS, proc template, programmation, SAS, source, tagsets, update | 2 Commentaires »
juin 1, 2009
Publié dans Autour de SAS, Exercices, Langage Macro, Par thématiques, SAS intermédiaire, Tous les niveaux | Taggé exercice, informatique, langage, macro, newsletter, programmation, SAS | Saisissez votre mot de passe pour accéder aux commentaires
mai 29, 2009
Voici en bleu un extrait du livre “La semaine de 4 heures
” (Travaillez moins, gagnez plus et vivez bien) de Timothy Ferriss aux éditions Pearson (pages 48 et 49).


1. Printemps 2005, Princeton, New Jersey
…Mon séminaire à Princeton venait de s’achever dans l’excitation et l’enthousiasme.
Dans le même temps, je savais que, la porte aussitôt franchie, la plupart des étudiants s’empresseraient de faire le contraire de ce que j’avais prêché. La majorité d’entre eux travailleraient 80 heures par semaine comme des ronds de cuir grassement payés sauf si je leur démontrais que les principes étudiés en cours peuvent être appliqués pour de bon.
D’où le défi.
J’offrais un billet aller-retour n’importe où à quiconque réussirait un défi - qui restait à préciser … Je leur avais dit de me retrouver après les cours s’ils étaient intéressés et ils étaient là, une vingtaine d’étudiants sur une classe de 60.
Contacter trois personnes réputées intouchables – Bill Clinton, J.D. Salinger, Madonna, peu importait – et obtenir d’au moins l’une d’elles qu’elle réponde à trois questions.
Sur les 20 étudiants, dont les yeux papillonnaient à l’idée d’une balade gratuite autour du monde, combien ont réussi le défi ?
Exactement… aucun. Pas un.
Ils n’étaient pas en mal de bonnes raisons : “Ce n’est pas si facile d’obtenir que quelqu’un…” “J’ai une dissert’ supper importante à rendre, et…” “J’adorerais mais vraiment, je ne vois pas comment…”
Il n’y avait cependant qu’une vraie raison, répétée à l’infini sous des formes différentes : c’était un défi difficile, voir impossible, et les autres étudiants les battraient. Tous ayant surestimé la concurrence, pas un seul ne releva le défi.
Selon les règles que j’avais fixés, si quelqu’un m’avait envoyé ne serait-ce qu’une réponse illisible d’un paragraphe, j’aurais été obligé de lui donner le prix.
2. Et vous ?


Gagnez le livre d’Olivier Decourt “Reporting avec SAS : Mettre en forme et diffuser vos résultats avec SAS 9 et SAS 9 BI
” offert par les éditions Dunod en répondant à la question : “Que vérifiez-vous pour valider vos programmes et comment ?” avant le 31 juillet 2009. Lire l’article sur le sujet.
Un mois après l’ouverture du concours, une participation a été enregistrée. Cela ne vous rappelle rien ?
Publié dans Autour de SAS, Jeux | Taggé informatique, la semaine de 4 heures, livre, olivier decourt, programmation, reporting avec sas, SAS, timothy ferriss | 2 Commentaires »
mai 28, 2009
Mettre entre guillemets les mots contenus dans une macro variable SAS et les séparer par des virgules est possible au moyen des fonction %STR(), %QSYSFUNC et TRANWRD. Dans quel cas est-ce utile ? Comment se décompose cette syntaxe ?
1. Dans quel cas a-t-on besoin d’ajouter des guillemets et virgules ?
Lors de l’écriture d’une macro, vous pouvez avoir besoin d’autoriser plus d’un mot dans un des paramètres.
options mprint;
%macro test (multival=);
…
%mend test;
%test (multival=Alfred William);
Note : l’option MPRINT de l’instruction OPTIONS permettra de voir la résolution de la macro dans la log.
Ensuite, le contenu de ce paramètre traité comme une macro variable peut être appelé dans une condition. Dans l’exemple qui suit “Alfred”,”William” sera remplacée par la macro variable mise à jour.
proc print data=sashelp.class (where=(name = (”Alfred”,”William”));
run;
Il faut pour cela mettre la macro variable à jour en ajoutant des guillemets et la virgule comme séparateur.
2. Comment ajouter guillemets et virgules ?
2.1 Un mot
Dans le cas d’un paramètre avec un mot, on peut ajouter %str(%”) devant et derrière. Le symbole % permet d’introduire les caractères spéciaux comme le guillemet.
%let multival=%str(%”)&multival.%str(%”);
La macro donne alors :
%macro test (multival=);
%let multival=%str(%”)&multival.%str(%”);
proc print data=sashelp.class (where=(name = &multival.));
run;
%mend test;
%test (multival=Alfred);
2.2 Plus d’un mot
Pour mettre entre guillemets plus d’un mot, l’espace entre les mots sera remplacé par “,” (guillemet, virgule, guillemet) au moyen de la fonction TRANWRD.
%qsysfunc(tranwrd(&multival.,%str( ),%str(%”,%”)))
Pour exécuter cette fonction, qui n’a pas d’équivalent dans les macros fonctions, il faut englober le tout dans %SYSFUNC/%QSYSFUNC. La présence de la virgule oblige dans notre cas à utiliser %QSYSFUNC.
%macro test (multival=);
%let multival=%str(%”)%qsysfunc(tranwrd(&multival.,%str( ),%str(%”,%”)))%str(%”);
proc print data=sashelp.class (where=(name in (&multival.));
run;
%mend test;
%test (multival=Alfred William);
2.3 Plus d’un mot mis en majuscule
Enfin, pour ne pas tenir compte de la case, le texte peut être mis en majuscule au moyen de la fonction %UPCASE.
where=(upcase(name) in (%upcase(&multival.))
Cela donne :
%macro test (multival=);
%let multival=%str(%”)%qsysfunc(tranwrd(&multival.,%str( ),%str(%”,%”)))%str(%”);
proc print data=sashelp.class (where=(upcase(name) in (%upcase(&multival.))));
run;
%mend test;
%test (multival=Alfred William);
Lectures complémentaires
Publié dans %qsysfunc, %str(), Advanced, Certification, Data Management, Etapes, Langage Macro, Les Fontions, Par thématiques, SAS intermédiaire, Tous les niveaux, tranwrd | Taggé %str, fonction, informatique, macro, programmation, qsysfunc, SAS, tranwrd | Leave a Comment »
mai 24, 2009
Lors de l’importation d’un fichier Excel sous SAS au moyen de la procédure PROC IMPORT, la première ligne indique à SAS quel nom donné aux variables au lieu d’utiliser les lettres de l’alphabet. L’option par défaut est GETNAME=YES. Dans un cas, des informations peuvent être perdues. C’est ce que je vous propose de voir ici.
1. Le cas où tout va bien
Le tableau à importer contient 4 colonnes. La première ligne servira à SAS pour attribuer le nom des variables. La seconde ligne contient les données. Le tableau SAS aura 4 variables avec une observation chacune.

La procédure PROC IMPORT
proc import datafile=‘C:/sasref/getname_example1.xls’
out=getname_ex
dbms=xls
replace;
getname=yes;
run;
2. Un nom de colonne manquant
Dans le cas suivant, une des cellules de la première ligne est vide. SAS cherche un nom (GETNAMES=YES) mais n’en trouve pas. SAS n’importe pas la colonne concernée.. Le data set contient alors 3 variables avec une observation chacune.

Publié dans Advanced, Certification, Data Access, Etapes, Les procédures, proc import | Leave a Comment »
mai 18, 2009
Les balises HTML sont des mots entourés de < et > servant à la mise en forme de pages Internet. Dans l’exemple qui suit le but est d’enlever avec SAS des balises HTML contenues dans une variable appelée DESCRIP au moyen d’une boucle. Cet exemple, basé sur un cas réel, permettra d’illustrer la syntaxe de DO UNTIL et de DO WHILE.
1. La fonction SUBSTR pour enlever un symbole <…>
Pour enlever une balise, je choisis ici de remplacer la chaîne commencant par < et se terminannat par > au moyen de la fonction SUBSTR. Pour ce faire,
- paramètre 1 : donner le nom de la variable en premier
- paramètre 2 : préciser la position du symbole < en second
- paramètre 3 : donner la longueur du texte en calculant le nombre de caractères entre ce symbole de début de balise et celui de fin (position de su symbole de fin > – position du symbole de début < + 1).
data no_tag (drop=tag:);
descrip=‘<p>my text</p>’;
tag_start = index(descrip,‘<’);
tag_end = index(descrip,‘>’);
substr(descrip,tag_start,tag_end-tag_start+1)=‘ ‘;
run;
Ici le texte à mettre à jour est <p>my text</p>. Cette première étape data remplace la première balise et seulement la première. Pour des raisons de lisibilité, j’ai choisi de créer deux variables intermédiaires qui retourne la position de < (variable TAG_START) et de > (TAG_END) au moyen de la fonction INDEX.
En fin d’étape data, toutes les variables dont le nom commence par TAG sont supprimée grâce à l’option DROP.
2. Répéter l’opération au moyen d’une boucle DO UNTIL
A chaque exécution de la boucle la variable DESCRIP est mise à jour : une balise <…> est enlevée.
La boucle sera exécutée jusqu’à ce qu’aucun symbole < ne soit identifié. En d’autres termes, la boucle sera exécutée jusqu’à ce que la fonction INDEX retourne la valeur zéro.
data no_tag (drop=tag:);
descrip=‘<p>my text</p>’;
do until(index(descrip,‘<’)=0);
tag_start = index(descrip,‘<’);
tag_end = index(descrip,‘>’);
substr(descrip,tag_start,tag_end-tag_start+1)=’ ‘;
end;
run;
3. Répéter l’opération au moyen d’une boucle DO WHILE
A chaque exécution de la boucle la variable DESCRIP est mise à jour : une balise <…> est enlevée.
La boucle sera exécutée tant qu’un symbole < sera identifié. En d’autres termes, la boucle sera exécutée tant que la fonction INDEX ne retournera pas la valeur zéro.
data no_tag (drop=tag:);
descrip=‘<p>my text</p>’;
do while(index(descrip,‘<’) ne 0);
tag_start = index(descrip,‘<’);
tag_end = index(descrip,‘>’);
substr(descrip,tag_start,tag_end-tag_start+1)=‘ ‘;
end;
run;
Avec DO UNTIL et DO WHILE, il faut faire attention aux boucles infinies. Si la condition pour sortir de la boucle n’est jamais obtenue. L’exécution continue sans fin.
Lectures complémentaires
Sur le blog www.sasreference.fr
Online Doc
Publié dans Base, Certification, Conditions, Data Management, Data Step, Etapes, Les Fontions, Par thématiques, SAS débutant, Tous les niveaux, index, substr | Taggé %DO, boucle, fonction, index, informatique, programmation, SAS, substr, until, while | Leave a Comment »
mai 14, 2009
Sébastien Ringuedé a rédigé des questions du type Certification SAS Base. Ces questions sont en français. Comme pour la certification, il a mis en place un système proposant de manière “aléatoire” 70 de ces questions. Vous qvez deux heures pour y répondre.
Le lundi 25 mai 2009, quiz SAS en ligne
(débutez ce test de 2h entre 20h30 et 21h30 heure de Paris)
Deux exemplaires de son livre sur SAS sont à gagner :
SAS Introduction au décisionnel : méthode et maîtrise du langage
Pour plus d’informations, reportez-vous au site : http://www.sas-sr.com/viewtopic.php?id=175
Publié dans Agenda, Autour de SAS, Base, Certification, Jeux, SAS débutant, SAS intermédiaire, Tous les niveaux | Taggé informatique, programmation, quiz, ringuedé, SAS, sébastien | Leave a Comment »
mai 11, 2009
Imaginez que vous avez dans une table des variables oui/non où 1 représente non et 2 représente oui. Changement de standard oblige, vous devez symboliser les non par un 0 et les oui par un 1.
Si mavariable=1 alors mavariable=0.
Sinon mavariable=1.
Bien sûr, vous pouvez traiter séparément chaque variable. Ce chantier laborieux est remplaçable par une boucle où seul le nom de la variable change à chaque fois. Vous voulez donc effectuer une même opération sur un grand nombre de variables. La syntaxe de l’array est faite pour vous.
1. Un data set pour l’exemple
Voici la table (SAS data set) utilisée pour l’exemple. Elle s’appelle FINAL. Elle est composée d’une variable caractère et de trois variables numériques, toutes des variables binaires de type oui (2)/ non (1).
data final;
input subject $ pregny validny aeny;
datalines;
A 1 2 1
B 1 1 2
C 2 1 2
D 1 2 2
;
run;
Le but sera d’obtenir un data set avec des variables binaires de type oui (1)/ non (0).
subject pregny validny aeny;
A 0 1 0
B 0 0 1
C 1 0 1
D 0 1 1
2. C’est quoi un array ?
Un array est un nom qui désigne une liste de variables. Il est propre à l’étape data.
- Définir un nouvel array : Dans un premier temps, l’array est à créer: Sous un nom de son choix, sont sauvegardés sauvegarde des noms de variables (les éléments de l’array) dont l’ordre est indexé pour pouvoir les désigner de manière individuelle par la suite.
- Appler les variables contenues dans l’array : Dans un second temps, chaque élément de l’array (chaque variable) est appelé/désigné, non pas par son nom, mais par sa position dans l’array.
3. Définir un array
Pour définir un array, il existe l’instruction ARRAY. Elle est composée de trois parties principales et d’un quatrième optionnel.
- le nom de l’array
- le nombre de variables listées (le nombre d’éléments dans l’array)
- le nom des variables
- la valeur des variables (optionel)
Dans l’exemple, j’ai un array nommé NY composé de trois éléments : les variables PREGNY (prenant no/yes), VALIDNY (valid no/yes) et AENY (adverse event no/yes).
data final;
set final;
*array ny {1998:2000} pregny validny aeny;
*array ny {1:3} pregny validny aeny;
array ny {*} pregny validny aeny;
run;
Je vous propose trois alternatives pour la notation. Ma préférence, pour des raisons de simplicité dans ce cas, va au cas numéro trois.
- {1998:2000} Dans le premier cas, la variable PREGNY a pour référence la position 1998, VALIDNY a pour référence la position 1999 et la variable AENY est en position 2000.
- {1:3} Dans le second cas, la numérotation commence à 1 avec la variable PREGNY et se termine à 3 avec la variable AENY.
- {*} Dans le troisième et dernier cas, la numérotation est implicite. Comme précédemment. Elle ira de 1 à 3. SAS se charge de compter le nombre de variables pour savoir la dimension de l’array. Si SAS fait le travail pour nous, pourquoi se priver de ce luxe !
Note : La première syntaxe peut apporter dans certains cas un plus en terme de compréhension. C’est le cas quand le numéro a un lien avec le sens de la variable. Par exemple, les variables RESULT98, RESULT99 et RESULT00 peuvent avoir les positions 1998, 1999 et 2000 et donc avoir un caractère informatif.
4. Appeler un array
Pour appeler un élément d’un array (une variable), il faut donner le nom de l’array suivi de la position de la variable dans l’array. Ainsi :
- ny{1} désigne la variable PREGNY
- ny{2} fait référence à la variable VALIDNY
- ny{3} concerne la variable AENY
data final;
set final;
array ny {*} pregny validny aeny;
*variable PREGNY;
if ny{1}=1 then ny{1}=0;
else ny{1}=1;
*variable VALIDNY;
if ny{2}=1 then ny{2}=0;
else ny{2}=1;
*variable AENY;
if ny{3}=1 then ny{3}=0;
else ny{3}=1;
run;
L’intérêt de cette notation vient dans l’usage d’une boucle où la position de la variable sera automatiquement changé.
data final;
set final;
array ny {*} pregny validny aeny;
do i=1 to dim(ny);*do i=1 to 3;
if ny{i}=1 then ny{i}=0;
else ny{i}=1;
end;
run;
Pour les plus paresseux comme moi, on demandera à SAS de calculer le nombre d’éléments contenus dans l’array (la dimension) au moyen de la fonction SAS propre à l’array DIM().
Je vous proposerai dans les semaines à venir un autre article sur les subtilités de l’array.
Publié dans Base, Certification, Data Management, Data Step, Etapes, Par thématiques, SAS débutant, Tous les niveaux | Taggé array, débutant, exemple, informatique, programmation, SAS | 1 commentaire »