Archive pour mai 2009

Longueur utilisée d’une variable SAS : Numérique, Alphanumérique.

Dans la problématique d’optimisation des applications SAS, des traitements et de la charge machine, nous sommes parfois amené à effectuer des recherches afin d’optimiser les programmes SAS et les bases de données SAS.

Un des points important est la volumétrie que représentent ces données. En effet, lorsque des bases de données stockent de grande quantité de données, des dizaines voire des centaines de millions de lignes, il devient très rentable et judicieux de se pencher sur l’optimisation des traitements, programmes SAS, mais également sur les bases de données SAS.

Or si SAS nous fournit une gestion simplifiée de la création et de la gestion de ses tables, il n’en demeure pas moins, qu’un peu de travail d’optimisation reste à la charge du concepteur de l’architecture des données. Cela devient encore plus vrai dans le monde du décisionnel, monde dans lequel les données, stockées sous forme de data Warehouse ou de datamarts, atteignent des volumes très important et ou le temps d’analyse est conséquent.

Hormis les problématiques de bien fondé de telle ou telle variable dans une table, de la normalisation des tables qui n’est pas Lire la suite de cette entrée »

Parmi les nouvelles fonctions en SAS V9.

SAS V9 – Les fonctions de concaténation.

Habitué en SAS, dans les étapes DATA, à utiliser les opérateurs de concaténation « !! » ou encore « || », (les seconds n’étant pas portables sur toutes les plate-formes SAS, par exemple sur MVS, Z/OS …, nous vous déconseillons leur usage), le Système SAS change la donne en nous offrrant aujourd’hui une série de trois nouvelles « fonction de concaténation » de chaîne de caractère, appelées : « CAT, CATS, CATX« .

Plus riche et permettant une gestion plus élaborée de la concaténation de variable, ces nouvelles fonctions, en SAS V9, permettent même d’ajouter des caractères séparateur entre les variables concaténées.

Plutôt qu’un long discours, voici un ensemble de portions de code SAS, mettant en scène les différentes possibilitées offertes en terme de concaténation de variables de type caractère avec le Système SAS V9.

Dans les exemples qui vous sont proposés ci-dessous, vous trouverez quatre cas d’utilisation de chacune des fonctions de concaténation, systématiquement, la quatrième (a4), présente le résultat qui serait obtenu lors de l’utilisation des trois précédentes (a1, a2, a3). Cette approche vous permettra de voir plus rapidement le résultat qui sera produit par les instructions SAS V9 sans devoir exécuter le code ci-dessous.

/* ****************************************** */
/* Site : http://www.formations-sas.fr - 2009 */
/* SAS V9                                     */
/* Fonctions de concaténation de chaines de   */
/* caractères.                                */
/*                                            */
/* Fonctions : CAT, CATS, CATX                */
/*                                            */
/* Auteur : Pascal MAUBERT                    */
/* ****************************************** */

/* Tronc Commun */

data test_cat;
 length cas $ 10 a1 a2 a3 a4 $ 45 x y z $ 15;
 x="Pays";
 y="FR";
 z="2009";
/* Exemple d'utilisation des nouvelles fonctions SAS de concaténation */
 /* SAS Version 9 */
 /* portions de code par groupe de 4 instructions équivalentes,
 la 4 a pour but de montrer le résultat */

 a1 = trim(x) !! ' ' !! trim(y) !! ' ' !! z ;
 a2 = 'Pays' !! '  FR  ' !! '2009';
 a3 = 'Pays ' !! trim(y) !! ' ' !! z ;
 a4 = 'Pays FR 2009';
 cas="Cas 1";
 output;

/* le symbole "!!" peut remplacer le "||", toutefois cela est déconseillé,
 si vous avez des besoins de portabilité, par exemple, pouvoir utiliser
 votre code sous MVS ou Z/OS */
/* Sans blanc aux extrémités */
/* Concatenates character strings and removes leading and trailing blanks  */

 a1 = cats(x,y,z) ;
 a2 = cats('Pays','  FR  ','2009');
 a3 = cats('Pays',y,z);
 a4 = 'PaysFR2009';
 cas="Cas 2";
 output;

/* Ajouter un séparateur et supprimer les blancs de début et de fin de chaine */
/* Concatenates character strings, removes leading and trailing blanks,
 and inserts separators */

 a1 = catx('-',x,y,z) ;
 a2 = catx('-','Pays','  FR  ','2009');
 a3 = catx('-','Pays',y,z);
 a4 = 'Pays-FR-2009';
 cas="Cas 3";
 output;

/* Garder tous les blancs */
/* Concatenates character strings without removing leading or trailing blanks  */

 a1 = cat(x,y,z) ;
 a2 = cat('Pays','  FR  ','2009');
 a3 = cat('Pays',y,z);
 a4 = 'Pays  FR  2009';
 cas="Cas 4";
 output;

/* Enlever les blancs de fin uniquement */
/* Concatenates character strings and removes trailing blanks  */

 a1 = catt(x,y,z) ;
 a2 = catt('Pays','  FR  ','2009');
 a3 = catt('Pays',y,z);
 a4 = 'Pays  FR2009';
 cas="Cas 5";
 output;
run;

/* ****************************************** */
/* Site : http://www.formations-sas.fr - 2009 */
/* Auteur : Pascal MAUBERT                    */
/* ****************************************** */

A vos claviers ;-) !

Ou copier / coller directement dans votre fenêtre programme SAS.

Les étapes pour réussir votre projet décisionnel.

 

Sachez que l’accompagnement va jouer un rôle essentiel dans la réussite de votre projet décisionnel.

 

Après l’acquisition du logiciel SAS, un accompagnement a pour but d’aider les entreprises pendant toutes les étapes d’un projet décisionnel se décline principalement en : conseil, support, formation, etc.

  • L’accompagnement de projet, en quoi cela consiste-t-il précisément ?
  • Quelles sont les bonnes pratiques à mettre en œuvre ?
  • Quel sont les précautions à prendre ?

Nous allons vous fournir des explications sur ces étapes de l’accompagnement de votre projet décisionnel SAS.

 

Introduction.

Le développement et la mise en place d’une application décisionnelle SAS, doit être le fruit d’une véritable réflexion et celle-ci va guider votre choix, sa mise en œuvre et enfin son appropriation par vos utilisateurs.

L’objectif d’un projet décisionnel est de tirer le meilleur parti de ses fonctionnalités, d’optimiser son efficacité et de rentabiliser rapidement l’investissement que vous aurez réalisé. Pour cela, il est particulièrement important de surveiller la qualité de l’accompagnement de votre projet.

Voici, selon nous, les points clés pour réussir la création, le développement et le déploiement de votre projet décisionnel.

Lire la suite de cette entrée »

Programme Exemple SAS : Extraction Aléatoire sans Doublon

 

La problématique est la suivante, réaliser une pannélisation, pour des raisons de performance.

 

Afin d’appliquer un modèle prédictif sur une représentation limitée de population, ou afin d’optimiser les performance lors de l’écriture de programme SAS en effectuant des tests sur une petite portion d’une base de données, nous avons la possibilité avec le système SAS de réaliser très simplement une extraction de données, de type aléatoire et bien sur, cerise sur le gâteau : sans doublons.

 

Dans le programme SAS suivant, il vous suffit de renseigner les macros variables, entre le signe ‘=’ et le signe ‘;’ : PCT, contenant le pourcentage de lignes de la table à extraire et DS1, donnez lui le nom complet de la table SAS source, soit libname.tablename, ensuite lancer le programme SAS et voilà c’est tout.

 

Programme exemple SAS : Extraction aléatoire sans doublon.

Lire la suite de cette entrée »