Programmation SAS - Apprenez à coder en SAS!



Ce blog sur la programmation SAS vous présente les concepts de programmation SAS et vous aide à comprendre les différents principes fondamentaux de SAS en détail avec des exemples.

Dans ce blog, je vais vous présenter quelques-uns des concepts importants de la programmation SAS. Avant de commencer, il est important que vous vous familiarisiez avec SAS. Mon précédent blog sur Tutoriel SAS vous aidera à comprendre SAS, ses applications et vous aidera à installer SAS University Edition, que nous utiliserions ici comme environnement de programmation. Vous vous demandez quelles sont les compétences que vous devriez maîtriser cette année? De plus, si vous prévoyez de vous lancer dans l'analyse des données, est l'une des meilleures façons de commencer avec la même chose.

Le guide des carrières techniques Edureka 2019 est sorti! Les rôles les plus chauds, les parcours d'apprentissage précis, les perspectives de l'industrie et plus encore dans le guide. Télécharger maintenant.





Donc sans plusretard,commençons avec la programmation SAS, d'accord?

Ce blog vous aidera à comprendre les sujets suivants:



Avant de commencer à coder, je voudrais vous présenter quelques termes importants qui sont importants pour la programmation SAS.

Principes de base de la programmation SAS

SAS Windows

Les grandes organisations et les instituts de formation préfèrent utiliser SAS Windows. SAS Windows dispose de nombreux utilitaires qui permettent de réduire le temps nécessaire à l'écriture des codes.

L'image suivante montre les différentes parties de SAS Windows.



SAS-Windows - Programmation SAS - Edureka

  • Fenêtre de journal : C'est une fenêtre d'exécution. Ici, vous pouvez vérifier l'exécution de votre programme. Il affiche également les erreurs, les avertissements et les notes.
  • Fenêtre de code :Cette fenêtre est également appelée fenêtre de l'éditeur. Considérez-le comme un papier vierge ou un bloc-notes, où vous pouvez écrire votre code SAS.
  • Fenêtre de sortie : Comme son nom l'indique, cette fenêtre affiche la sortie du programme / code que vous écrivez dans l'éditeur.
  • Fenêtre de résultat : C'est un index qui répertorie toutes les sorties de programmes exécutés dans une session. Puisqu'il contient les résultats d'une session particulière, si vous fermez le logiciel et le redémarrez, la fenêtre de résultats sera vide.
  • Explorer la fenêtre : Il contient la liste de toutes les bibliothèques du système. Vous pouvez également parcourir les fichiers pris en charge par le système ici.

Quelques organisations utilisent Linux, cependant, sans interface utilisateur graphique, vous devez écrire du code pour chaque requête. Par conséquent, il n'est pas pratique à utiliser.

Ensembles de données SAS

Les ensembles de données SAS sont appelés fichiers de données. Les fichiers de données sont constitués de lignes et de colonnes. Les lignes contiennent des observations et les colonnes tiennentNoms de variables.

Variables SAS

SAS a deux types de variables:

  • Variables numériques : Il s'agit du type de variable par défaut. Ces variables sont utilisées dans les expressions mathématiques.
  • Variables de caractères :Les variables de caractère sont utilisées pour les valeurs qui ne sont pas utilisées dans les expressions mathématiques.
    Ils sont traités comme du texte ou des chaînes. Une variable devient une variable de caractère en ajoutant un«$»ignà la fin du nom de la variable.

Bibliothèques SAS

La bibliothèque SAS est une collection de fichiers SAS qui sont stockés dans le même dossier ou répertoire sur votre ordinateur.

  • Bibliothèque temporaire : Dans cette bibliothèque, l'ensemble de données est supprimé à la fin de la session SAS.
  • Bibliothèque permanente : Les ensembles de données sont enregistrés de manière permanente. Par conséquent, ils sont disponibles à travers les sessions.

Les utilisateurs peuvent également créer ou définir une nouvelle bibliothèque connue sous le nom de bibliothèques définies par l'utilisateur à l'aide du mot-clé LIBNAME . Ce sont également des bibliothèques permanentes.

Programmation SAS: Structure du code SAS

La programmation SAS est basée sur deux blocs de construction:

  • Étape DATA : L'étape DATA crée un jeu de données SAS puis transmet les données à une étape PROC
  • Étape PROC : L'étape PROC traite les données

Un programme SAS doit suivre les règles mentionnées ci-dessous:

  • Presque chaque code commencera par DATA ou une étape PROC
  • Chaque ligne de code SAS se termine par un point virgule
  • Un code SAS se termine par le mot clé RUN ou QUIT
  • Les codes SAS ne sont pas sensibles à la casse
  • Vous pouvez écrire un code sur différentes lignes ou vous pouvez écrire plusieurs instructions sur une seule ligne

Maintenant que nous avons vu quelques terminologies de base, commençons avec la programmation SAS avec ce code de base:

DATA Entrée Employee_Info Emp_ID Emp_Name $ Emp_Vertical $ datalines 101 Mak SQL 102 Rama SAS 103 Priya Java 104 Karthik Excel 105 Mandeep SAS Run

Dans le code ci-dessus, nous avons créé un ensemble de données appelé Employee_Info. Il a trois variables, une variable numérique comme Emp_Id et deux variables de caractère comme Emp_Name et Emp_Verticals. La commande Exécuter affiche l'ensemble de données dans la fenêtre de sortie.

L'image ci-dessous montre la sortie du code mentionné ci-dessus.

Supposons que vous vouliez voir le résultat en vue d'impression, eh bien vous pouvez le faire en utilisant une procédure PROC PRINT, le reste du code reste le même.

DATA Entrée Employee_Info Emp_ID Emp_Name $ Emp_Vertical $ datalines 101 Mak SQL 102 Rama SAS 103 Priya Java 104 Karthik Excel 105 Mandeep SAS Run PROC PRINT DATA = Employee_Info Run

L'image ci-dessous montre la sortie du code ci-dessus.

Nous venons de créer un ensemble de données et de comprendre le fonctionnement de la procédure PRINT. Maintenant, prenons l'ensemble de données ci-dessus et utilisons-le pour une programmation ultérieure. Supposons que nous souhaitons ajouter la date d'adhésion de l'employé à l'ensemble de données. Nous créons donc une variable appelée DOJ, la donnons en entrée et imprimons le résultat.

DATA Entrée Employee_Info Emp_ID Emp_Name $ Emp_Vertical $ DOJ lignes de données 101 Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007 105 Mandeep SAS 11/09/2016 Exécuter PROC PRINT DATA = Employee_Info Exécuter

L'image ci-dessous montre la sortie du code ci-dessus. Il est visible qu’une variable a été créée, mais la valeur de DOJ n’a pas été imprimée. Au lieu de cela, nous voyons des points ont remplacé les valeurs de date.


Pourquoi est-ce arrivé? Eh bien, la variable DOJ est sans suffixe «$», ce qui signifie que par défaut SAS la lira comme une variable numérique. Mais les données que nous avons saisies ont un caractère spécial «/», par conséquent elles n’impriment pas le résultat car il ne s’agit pas de données purement numériques. Si vous vérifiez la fenêtre du journal, vous verrez un message d’erreur en tant que «données non valides pour la variable DOJ»

Maintenant, comment pouvons-nous résoudre ce problème? Eh bien, une façon de le résoudre consiste à utiliser un suffixe «$» pour la variable DOJ. Cela convertira la variable DOJ en caractère et vous pourrez imprimer les valeurs de date. Apportons les modifications au code et voyons le résultat.

DATA Entrée Employee_Info Emp_ID Emp_Name $ Emp_Vertical $ DOJ $ datalines 101 Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007 105 Mandeep SAS 11/09 / 2016 Exécuter PROC PRINT DATA = Employee_Info Exécuter

L'écran de sortie affichera la sortie suivante.


Vous pouvez voir que les valeurs de données sont affichées sous forme de dates en convertissant DOJ en caractère. Cependant, il s'agit d'une solution temporaire. Laissez-moi vous expliquer comment?

Eh bien, imaginez qu'une banque dispose d'un ensemble de données similaire. L'ensemble de données contient les détails du titulaire du compte comme le montant du prêt, les versements,etdate d'échéance du versement du prêt. Imaginez, le titulaire a manqué son échéance pour payer un acompte et la banque veut calculer le retard. La banque devra calculer la différence entre la date limite et la date du jour.

Mais si l'ensemble de données de la banque comporte des dates au format caractères, la banque ne pourra pas y effectuer d'opérations mathématiques. Ce problème peut également affecter notre ensemble de données. Alors, comment pouvons-nous résoudre ce problème?

Le prochain concept vous aidera à surmonter ce problème.

Informats et formats en SAS

Il est important que vous compreniez bien ce sujet si vous voulez être bon en programmation SAS.Si vous vous souvenez bien, j'ai mentionné plus tôt que SAS a deux types de variables standard:

  • Numérique
  • Personnage

Lorsque SAS rencontre des variables non standard, SAS génère une erreur ou vous n'obtenez pas la sortie souhaitée. Pour surmonter ce problème, SAS utiliseInforméet les formats.

En savoir plus

Les informats sont généralement utilisés pour lire ou saisir des données à partir de fichiers externes ou de fichiers plats (commefichiers texte ou fichiers séquentiels). L'informat indique à SAS comment liredonnées en variables SAS. SAS propose trois types d'Informats:caractère, numérique et date / heure. Les informats sont nommés selon ce qui suitstructure de la syntaxe:

  • Caractère Informat: $ INFORMATw.
  • Numérique informé: INFORMATw.d
  • Date / heure d'information: INFORMATw.

Le «$» indique un caractère informat. INFORMAT fait référence au parfois facultatifNom de l'informat SAS. Le «w» indique la largeur (octets ou nombre de colonnes) duvariable. Le «d» est utilisé pour les données numériques afin de spécifier le nombre de chiffres à droite dela décimale. Tous les informats doivent contenir un point décimal (.) Afin que SAS puisse
différencier un informat d'une variable SAS.

Revenons à notre code précédent et voyons si Date / Heure Informat nous aide. Modifions donc le code en conséquence et ajoutons-y une information de date comme suit:

DATA Entrée Employee_Info Emp_ID Emp_Name $ Emp_Vertical $ DOJ INFORMAT DOJ jjmmaa10. datalines 101 Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007 105 Mandeep SAS 11/09/2016 Exécuter PROC PRINT DATA = Employee_Info Exécuter

La ligne numéro 3 du code demande à SAS de lire la variable «date d’adhésion» (DOJ) en utilisant la date
informat MMJJAAAA. Pour chaque champ de date occupe 10 espaces, le qualificatif «w.» Estmis à 10.

La sortie du code ressemblerait à ceci.

différence entre classe et interface

Le résultat montre que nous n’avons toujours pas le résultat souhaité, mais que la colonne DOJ contient des valeurs numériques et non les dates que nous avons spécifiées. Maintenant, pourquoi est-ce? Eh bien, une fois qu'une date est lue avec un informat de date, SAS stocke la date sous forme de nombre. Cela signifie qu'il est lu comme le nombre de jours entre la date et le 1er janvier 1960 (par exemple: 15/03/1994 est stocké sous la forme 12492).

La raison en est que SAS dispose de trois compteurs distincts qui enregistrent les dates et l'heure. Ces compteurs de date ont commencé à zéro le 1er janvier 1960. Par conséquent, les dates antérieures au 1/1/1960 ont des valeurs négatives et toute date postérieure a une valeur positive. Tous les jours à minuit, le compteur de date est incrémenté de un.

Une histoire raconte que les fondateurs de SAS voulaient utiliser la date de naissance approximative du système IBM 370, et ils ont choisi le 1er janvier 1960 comme une approximation facile à retenir.

Maintenant que vous connaissez la raison pour laquelle la colonne DOJ a affiché ces nombres, essayons de résoudre ce problème. Pour surmonter ce problème, nous utilisons Format.

Format

Les informats sont les instructions de lecture des données, tandis que les formats sont les instructions utilisées pour afficher oudes données de sortie.La définition d'un format pour une variable est la façon dont vous indiquez à SAS d'afficher les valeurs dans la variable. Les formats sont regroupés dans les trois mêmes classes que les informats (caractère, numérique et date-heure) et contiennent toujours un point.

La forme générale d'une instruction de format est:

  • FORMAT nom-variable FORMAT-NAME.

Revenons à notre code ayant le jeu de données Employee_Info pour voir si nous pouvons afficher la date correctement en utilisant la commande FORMAT.

DATA Entrée Employee_Info Emp_ID Emp_Name $ Emp_Vertical $ DOJ INFORMAT DOJ jjmmaa10. FORMAT DOJ jjmmaa10. datalines 101 Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007 105 Mandeep SAS 11/09/2016 Exécuter PROC PRINT DATA = Employee_Info Exécuter

Nous avons utilisé la commande FORMAT dans la ligne numéro 4 dans le code ci-dessus. L'écran de sortie suivant nous donnera la sortie souhaitée.

Nous avons affiché avec succès l'ensemble de données à l'aide de la commande Format de date. J'espère que vous avez compris comment utiliser le format et l'informat.Avançons avec notre blog de programmation SAS et jetons un œil à un autre concept important.

Boucles SAS

Lors de la programmation SAS, nous pouvons rencontrer des situations dans lesquelles nous devons à plusieurs reprises exécuter unbloc de code plusieurs fois. Il n'est pas pratique d'écrire encore et encore le même ensemble d'instructions. C'est là que les boucles entrent en scène. Dans SAS, l'instruction Do est utilisée pour implémenter des boucles. Il est également connu sous le nom de Do Loop. L'image ci-dessous montre leforme générale des instructions de boucle Do dans SAS.

Voici les types de boucles DO dans SAS:

  • Indice : La boucle continue de la valeur de départ jusqu'à la valeur d'arrêt de la variable d'index.
  • Tandis que : La boucle continue tant que le Tandis que la condition devient fausse.
  • Jusqu'à : La boucle continue jusqu'au Jusqu'à la condition devient vraie.

Faire une boucle d'index

Nous utilisons une variable d'index comme valeur de début et de fin pour Faire une boucle d'index . Les instructions SAS sont exécutées à plusieurs reprises jusqu'à ce que la variable d'index atteigne sa valeur finale.
Syntaxe:

Do indexvariable = initialvalue to finalvalue SAS instructions End

Jetons un coup d'œil à un exemple de code pour comprendre Do Index Loop. Dans le code ci-dessous, VAR est la variable d'index.

DATA SampleLoop SUM = 0 Do VAR = 1 à 10 SUM = SUM + VAR END PROC PRINT DATA = SampleLoop Run

Lorsque vous exécutez le code ci-dessus, vous obtiendrez la sortie suivante.

implémentation d'une liste chaînée en c

Faire une boucle

La Faire pendant loop utilise une condition WHILE. Cette boucle exécute le bloc de code lorsque la condition est vraie et continue de l'exécuter, jusqu'à ce que la condition devienne fausse. Une fois que la condition devient fausse, la boucle est terminée.

Syntaxe:

Do While (condition) instructions SAS End

L'exemple de code suivant vous aidera à comprendre la boucle DO WHILE.

DATA SampleLoop SUM = 0 VAR = 1 Do While (VAR<15) SUM = SUM + VAR VAR+1 END PROC PRINT DATA = SampleLoop Run 

Le code ci-dessus vous donnera la sortie suivante.

Faire jusqu'à la boucle

La boucle Do Until utilise un Jusqu'à Cette boucle exécute le bloc de code lorsque la condition est fausse et continue de l'exécuter jusqu'à ce que la condition devienne vraie. Une fois que la condition devient vraie, la boucle est terminée.

Syntaxe:

Faire jusqu'à (condition) instructions SAS END

Jetons un œil à un exemple de programme.

DATA SampleLoop SUM = 0 VAR = 1 Do Until (VAR> 15) SUM = SUM + VAR VAR + 1 END PROC PRINT Run

Le code a la sortie suivante.

Ainsi, nous avons terminé le concept de boucles dans la programmation SAS. Tous les sujets que nous avons étudiés jusqu'à présent ont parlé des bases de la programmation SAS en général.

Jetons maintenant un œil à quelques procédures statistiques. Ces procédures formeront une base pour les procédures analytiques.

Abonnez-vous à notre chaîne YouTube pour obtenir de nouvelles mises à jour ..!

Procédures statistiques de base utilisant SAS

PROC signifie

Cette procédure est utilisée pour calculer la moyenne arithmétique et l'écart type. Les personnes qui ne connaissent pas les statistiques peuvent avoir du mal à comprendre ces termes. Donc, avant de commencer à coder et d'utiliser cette procédure. Je vais essayer d'expliquer ce que signifient ces termes.

Commençons par la moyenne arithmétique et voyons comment PROC MEANS est utilisé dans la programmation SAS pour la calculer.

Moyenne arithmétique

La somme de la valeur des variables numériques, divisée par le nombre de variables vous donne le moyenne arithmétique . Il est également connu sous le nom de moyenne et est une mesure de la tendance centrale. Une mesure de tendance centrale est une valeur unique qui tente de décrire un ensemble de données en identifiant la position centrale dans cet ensemble de données.

En programmation SAS, vous utilisez PROC MEANS pour calculer la moyenne arithmétique. Cette procédure vous permet de trouver la moyenne de toutes les variables ou de quelques variables d'un ensemble de données. Vous pouvez également former des groupes et calculer la moyenne des variables spécifiques à ce groupe.

Syntaxe:

PROC MEANS DATA = DATASET Class Variables Variables Variables
  • Variables : Les variables de la syntaxe ci-dessus indiquent les variables de l'ensemble de données dont la moyenne doit être calculée.

Moyenne d'un ensemble de données

Si vousfournir uniquement le nom de l'ensemble de données sans aucune variable, vous pouvez calculer la moyenne de toutes les variables d'un ensemble de données.

Jetons un œil à un exemple de code. J’ai envisagé un ensemble de données SAS prédéfini appelé «voitures». La commande suivante affichera l'ensemble de données.

PROC PRINT data = sashelp.CARS Exécuter

L'image ci-dessous montre la sortie du code ci-dessus.


Utilisons maintenant ce code d'ensemble de données et calculons la moyenne de chaque variable dans l'ensemble de données'voitures'.

PROC MEANS DATA = sashelp CARS Mean SUM MAXDEC = 2 Run

L'image ci-dessous montre la moyenne de toutes les variables de l'ensemble de données jusqu'à deux décimales.

Moyenne des variables sélectionnées

En fournissant les noms dans l'option Var, vous pouvez obtenir la moyenne des variables spécifiées. Veuillez vous référer au code ci-dessous.

PROC SIGNIFIE DONNÉES = aide au vantail CARS signifie SOMME MAXDEC = 2 cylindres de puissance var.

Moyenne par classe

Vous pouvez trouver la moyenne des variables numériques en les organisant en groupes en utilisantun paramètre pour les regrouper.Envisagez de suivre l'exemple de code. Permet de découvrir la moyenne de la puissance pour différents groupes classés par classes «marque» et «type» de différentes voitures.

PROC MEANS DATA = sashelp CARS MEANS SUM MAXDEC = 2 class make type var horsepower Run

L'image ci-dessous montre la sortie du code ci-dessus.

Continuons avec notre blog de programmation SAS et jetons un œil à un autre concept statistique important.

Écart-type

L'écart type (ET) est une mesure de la variabilité des données dans un ensemble de données donné. Mathématiquement, il vous indique à quel point chaque point de données est proche de la valeur moyenne d'un ensemble de données. Si la valeur de l'écart type est proche de 0, cela indique que les points de données sont très proches de la moyenne de l'ensemble de données et un écart-type élevé indique que les points de données sont répartis sur une large plage de valeurs.

Dans SAS, vous pouvez calculer la valeur de l'écart type à l'aide de deux procédures. Elles sont:

  • PROC signifie
  • ENQUÊTES

Écart-type avec PROC MEANS

Vous pouvez mesurer l'écart type à l'aide des moyens de proc, vous devez choisir le HEURES option dans l'étape PROC. Il affichera les valeurs de l'écart type pour chaque variable numérique de l'ensemble de données.

Syntaxe:

PROC MEANS DATA = jeu de données STD

Considérez cet exemple de code, créons un autre ensemble de données CARS1 à partir de l'ensemble de données CARS dans la bibliothèque SASHELP. Pour ce faire, nous utilisons la procédure PROC SQL. Regroupons les données en utilisant le «type» et la «marque» des voitures et calculons l’écart type pour les variables sélectionnées en utilisant l’option STD avec l’étape PROC signifie.

PROC SQL crée la table CARS1 comme SELECT marque, type, puissance, cylindres, poids FROM SASHELP.CARS WHERE make in ('Audi', 'BMW') RUN PROC MEANS DATA = CARS1 STD Run

Le code ci-dessus donnera un écart type pour les variables sélectionnées. L'image suivante affiche la sortie.

PROC SURVEYMEANS

Cette procédure est utilisée pour mesurer l'écart type avec certaines fonctionnalités avancées telles que la mesure de l'écart type pour les variables catégorielles et la variance.

Syntaxe:

PROC SURVEYMEANS options mots-clés statistiques Par variables Variables de classe Variables variables

Voici la description des paramètres utilisés:

  • Par est utilisé pour indiquer les variables utilisées pour créer des groupes d'observations.
  • Classe indique les variables utilisées pour les variables catégorielles.
  • indique les variables pour lesquelles SD sera calculé.

Jetons un coup d'œil à cet exemple de code qui décrit l'utilisation du paramètre de classe, qui crée les statistiques pour chacune des valeurs de la variable de classe.

PROC SURVEYMEANS DATA = CARS1 STD Type de classe Var type chevaux-vapeur ods statistiques de sortie = rectangle Exécuter PROC PRINT DATA = rectangle Exécuter

Les images ci-dessous montrent la sortie du code ci-dessus. Il montre la distribution des données pour la variable «Puissance» pour un intervalle de confiance à 95%. (L'intervalle de confiance désigne une plage de valeurs définie de manière à ce qu'il existe une probabilité spécifiée que la valeur d'un paramètre se trouve à l'intérieur.)

Donc, cela nous amène à la fin du blog de programmation SAS. Pour tout doute ou problème avec le contenu du blog, veuillez les laisser dans la section commentaires, je les résoudrai au plus tôt et vous répondrai.

Si vous souhaitez apprendre SAS et vous bâtir une carrière dans le domaine de l'analytique, consultez notre qui vient avec une formation en direct animée par un instructeur et une expérience de projet réelle. Cette formation vous aidera à comprendre SAS en profondeur et à maîtriser divers concepts du langage de programmation SAS.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires et nous vous recontacterons.