h1

Une formation gratuite d’introduction à SAS en deux clics

août 20, 2016

Bonjour,

La plateforme de formation en ligne : programmeur-pro.com vient de bénéficier d’un petit lifting.

Elle contient la formation gratuite : « Introduction à SAS pour vrai débutant « .

Introduction à SAS pour vrai débutant, le descriptif:

Ce programme s’adresse aux vrais débutants en langage SAS. Vous devez travailler en collaboration avec des programmeurs SAS, faire tourner des programmes existants ou naviguer dans une table SAS, ce programme d’introduction est fait pour vous.

Ici, on vous donne les outils de base pour gagner en autonomie dans votre travail, acquérir une meilleure compréhension des contraintes de la programmation et acquérir le vocabulaire pour dialoguer avec des programmeurs.

Ce programme est composé de 7 unités.

Pour créer un compte, cliquez sur S’inscrire. Confirmez ensuite votre inscription en cliquant sur le mail que vous recevrez.

Si vous pensez que dans votre entourage d’autres personnes pourraient bénéficier de ce programme, alors partagez le lien : programmeur-pro.com

A très bientôt sur la plateforme.

Véronique

h1

Le duo transtrn-trimn comme alternative à tranwrd

novembre 20, 2015

La fonction transtrn en combinaison avec la fonction trimn vous permettre d’enlever un mot sans laisser un blanc.

J’ai mis à jour l’article 5 fonctions pour enlever les blancs sur programmeur-pro.com. Découvrez la syntaxe dans la section 4 de l’article.

h1

5 minutes pour créer des fichiers .xls personnalisés avec proc template et ods

septembre 12, 2015

Découvrez mon nouveau site consacrée à la programmation en SAS programmeur-pro.com et téléchargez gratuitement mon guide pour personnaliser le rendu de vos fichiers .xls, .doc et .pdf.

En moins de 5 minutes, vous êtes capable de créer un template personnalisé et l’utilisé avec ODS TAGSETS.EXCELXP, ODS RTF, ODS PDF. Ce document de référence est accessible à tous : débutant et programmeur expérimenté.

h1

A partir de quelle lettre y a-t-il une différence : la fonction compare

mai 25, 2015

La fonction COMPARE retourne le nombre zéro si aucune différence n’existe entre deux chaînes de caractères. Sinon elle retourne la position la position du premier caractère différent.

Dans l’exemple ci-dessous, deux datasets sont créés. Une fois combinés, on s’intéresse à la différence entre la variable LABEL_ONE du premier dataset et la variable LABEL_TWO du second dataset. La première différence a lieu sur la deuxième lettre. La variable DIFF prend donc la valeur 2.

data one;
   length start $8 label_one $8;
   start='1';
   label_one='ABC';
run;

data two;
   length start $8 label_two $8;
   start='1';
   label_two='AbC';
run;

data diff;
   merge one two;
   by start;
run;

data diff;
   set diff;
   diff=compare(label_one,label_two);
run;

proc print data=diff;
run;

Vous pouvez ajouter un troisième paramètre dans la fonction si vous ne voulez pas tenir compte des différences de majuscule, de blancs de début de chaîne de caractère,…

Dans quel cas utiliser cette fonction ? Si vous réalisez un rapport listant la différence entre deux valeurs pour pouvoir ensuite les corriger, vous pouvez utiliser cette fonction pour préciser à partir de quel moment la couleur devra changer.

Pour en savoir plus : la documentation SAS 9.2

h1

Retrouver la semaine avec la fonction WEEK

septembre 28, 2014

A partir d’une date SAS, le numéro de la semaine est extrait avec la fonction WEEK. Cette fonction est composée de deux paramètres: la date SAS obligatoire et une lettre entre guillemets (‘U’,’V’ ou ‘W’) facultative. Ne pas mettre de lettre revient à choisir l’option ‘U’.

Les questions à se poser

La première question à se poser est : le premier jour de la semaine est-il un dimanche ou un lundi ?

La seconde question à se poser est : si le 1er janvier est en semaine, est-ce en semaine 0 ou la semaine 1 ?

Illustration de la fonction WEEK avec un exemple.

Prenons l’exemple de la première semaine de janvier 2015.

  • Jeudi 1er janvier
  • Vendredi 2 janvier
  • Samedi 3 janvier
  • Dimanche 4 janvier
  • Lundi 5 janvier
  • Mardi 6 janvier

Le premier jour de la semaine est un dimanche avec la lettre U. Le 1er janvier sera en semaine zéro.

Tandis que les options V et W considèrent le lundi comme le premier jour de la semaine.

  • Avec l’option V, le 1er janvier sera en semaine 1
  • Avec l’option W, le 1er janvier sera en semaine 0

Tester avec du code SAS

data one;
   today='01JAN2015'd;
   output;
   today='02JAN2015'd;
   output;
   today='02JAN2015'd;
   output;
   today='02JAN2015'd;
   output;
   today='02JAN2015'd;
   output;
   today='02JAN2015'd;
   output;
   today='02JAN2015'd;
   output;
run;

data one;
   set one;
   week=week(today);
   weeku=week(today,'U');
   weekv=week(today,'V');
   weekw=week(today,'W');
run;

proc print data=one;
   format today date9.;
run;

Avec les fonctions SAS, il est important de garder en mémoire que le premier jour de la semaine par défaut est le dimanche et non le lundi. Ainsi la fonction WEEKDAY est également touchée par cette règle. Elle donnera un 1 pour le dimanche et un 2 pour le lundi.

Autres lectures

h1

Vidéo : Pourquoi utilisons la lettre X pour représenter l’inconnue en algèbre ?

juillet 1, 2014

Pour ces vacances d’été, je vous propose de regarder une vidéo de l’émission américaine TED où Terry Moore nous explique pourquoi nous utilisons la lettre X pour représenter l’inconnue en algèbre.

N’hésitez pas à changer le s’éteint pour avoir le sous-titre en Français.

www.ted.com/talks/terry_moore_why_is_x_the_unknown

h1

Lister fichiers et répertoires sous UNIX

novembre 2, 2013

La fonction call system permet dans le cas présent de stocker du code Unix pour rechercher des fichiers dans des répertoires données. Le résultat de la recherche est stocké dans un fichier .txt qui est lu dans une étape data.

1. Créer une macro variable pour stocker le chemin d’accès de la bibliothèque WORK

Le chemin d’accès à la bibliothèque WORK est extrait avec la fonction système PATHNA?E et est stocké dans la macro variable WORKDIR. Ce chemin d’accès sera celui où sera sauvegardé le fichier .txt de la recherche.

%let workdir=%sysfunc(pathname(work));

2. Utiliser call symput pour appeler la commande find d’UNIX 

La commande find est suivie de trois composants :

  • le chemin d’accès au(x) fichier(x) d’entrée. L’astérisk indique que tous les sous répertoire du répertoire PROJET sont consultés
  • le chemin d’accès au fichier final (ici resultat.txt) où sera stocké le résultat de la recherche. Dans l’exemple, le fichier est stocké de manière temporaire dans le répertoire utilisé par la bibliothèque WORK de SAS.
  • La page anglaise de Wikipedia http://en.wikipedia.org/wiki/Find explique que le code 2>/dev/null supprime des messages d'erreurs liés à des droits d'accès.

« If you’re doing this as a user other than root, you might want to ignore permission denied (and any other) errors. Since errors are printed to stderr, they can be suppressed by redirecting the output to /dev/null. »

Dans le second appel le double >> permet d’ajouter au fichier existant le résultat de la recherche au lieu de remplacer l’ancien.

data _null_;
   call system ("find c:/projet/*/demographie.sas7bdat > &workdir./resultat.txt 2>/dev/null
                      c:/project/*/laboratoire.sas7bdat >> &workdir./resultat.txt 2>/dev/null");
run;

L’étape data  sert à lire le fichier .txt et de la trocker dans un dataset (ici REF) via infile/input. Des options à l’instruction infile peuvent être ajoutées pour lire le fichier correctement.

data ref (keep=);

   infile "&workdir./resultat.txt" ;*lrecl=2000 truncover firstobs=1;

   input pathdsn $1-100;

run;