SAS (langage)

Un article de Wikipédia, l'encyclopédie libre.

Pour les articles homonymes, voir SAS.

Le langage de commande de SAS est un langage de programmation de quatrième génération (L4G) édité par le SAS Institute. L'acronyme SAS vient de "Statistical Analysis System". Il existe depuis plus de trente ans.

Actuellement (depuis 2004), SAS en est à la version 9, ce qui correspond à une évolution majeure dans le logiciel car il intègre une nouvelle brique conceptuelle destinée à s'implanter dans le monde des logiciels d’informatique décisionnelle (en anglais Business Intelligence).

Il faut donc dissocier la SAS Foundation qui représente le L4G seule et la SAS BI, qui intègre des applicatifs spécifiques.

Sommaire

[modifier] SAS Foundation (ou SAS V9)

Le logiciel traditionnel se compose d'un ensemble de modules permettant de répondre aux besoins suivants par la programmation :

  1. Création et gestion de bases de données
  2. Traitements analytiques des bases de données
  3. Création et diffusion de rapports de synthèse et de listing.

Le L4G n'a fait que s'enrichir depuis 30 ans sans modifier le code depuis. L'avantage est que les programmes s'exécutent toujours depuis la création, mais aucune normalisation n'a pu être apportée.

Les modules Foundation sont les suivants :

Livrée obligatoirement lors de la location :

  • Base SAS
  • SAS Entreprise Guide (interface windows plus riche permettant d'exploiter des "Wizards" plutôt que la saisie de code)

Selon les besoins :

  • OLAP (pour générer des cubes dans le cadre d'une utilisation de MOLAP)
  • SAS/ACCESS (1 module spécifique par Base de Données)
  • SAS/FSP (pour la création d'interface)
  • SAS/ASSIST
  • SAS/CONNECT (pour le travail en client-serveur)
  • SAS/GRAPH (pour créer des graphiques)
  • SAS/IML (permettant de coder de l'algèbre linéaire)
  • SAS/STAT (permettant l'accès à toutes les procédures statistiques)
  • SAS/ETS (permettant l'accès à toutes les procédures d'analyse temporelle)

Le langage SAS est basé de trois parties :

Les étapes DATA. Elles permettent de répondre aux besoins correspondant à la création et à la gestion de bases de données, brique fondamentale de tout système d'information. Une étape crée ou modifie une table d'observations. En colonne se trouvent le plus souvent un identifiant et des indicateurs et en lignes, les sujets observées. Par exemple, une table peut contenir la liste des clients d'une banque.

Les Procédures ont chacune leur objectif : l'une permet de trier une table, l'autre de compter les lignes ou de synthétiser les indicateurs... ou simplement d'imprimer la table ou un échantillon.

Le langage MACRO est un langage permettant d'automatiser les traitements.

Il est disponible sous MVS, UNIX, LINUX et Microsoft Windows.

[modifier] SAS BI (ou SAS 9)

L'offre de la SAS 9 permet à SAS de fournir des applicatifs ETL et de reporting WEB. Dans tous les cas, l'applicatif consiste en une interface graphique (atelier).

SAS Data Integration Studio est une offre sur la brique ETL de la chaîne décisionnelle. L'atelier permet de concevoir un ensemble de tâches pour la création d'un système d'information.

SAS Web Report Studio permet de concevoir un ensemble de reporting accessible par le Web.

[modifier] Exemple de code SAS

L'étape DATA suivante fait une copie du data set "origine" vers "copie" en ne prenant que les observations qui répondent à la clause WHERE:

DATA copie;
 SET origine;
 WHERE vente > 100000;
 RUN;

L'étape se comprend de la façon suivante :

CREE LA TABLE copie ;
EN LISANT origine;
Où LES VENTES SONT SUPERIEURES à 100000;
EXECUTE;


La procédure suivante exporte les donnée vers un fichier xls:

PROC EXPORT DATA=Copie
 OUTFILE= "C:\temp\copie.xls"
 DBMS=EXCEL REPLACE;
 SHEET="NomDeLaSheet";
 RUN;

La macro suivante optimise la procédure d'import en important du même fichier xls la sheet vente1 vente2 vente3 vente4:

%macro brol(max);
 %do i=1 %to max;
 PROC IMPORT OUT= WORK.origine 
            DATAFILE= "U:\temp\origine.xls" 
            DBMS=EXCEL REPLACE;
     SHEET="vente&i"; 
     GETNAMES=YES;
     MIXED=YES;
     SCANTEXT=YES;
     USEDATE=YES;
     SCANTIME=YES;
 RUN;
 %end;
 %mend;
 %brol(4)

[modifier] Voir aussi

[modifier] Lien interne

  • R logiciel libre d'analyse statistique.

[modifier] Lien externe