Nous discutons aujourd’hui des macros SAS pour les débutants et de la façon dont la macro SAS nous facilite la vie en réduisant la redondance ou la répétitivité d’un code. La macro SAS fournit un moyen incroyable de rendre un processus facile et automatique. Ici, nous verrons les différentes variables des macros SAS, les fonctions des macros dans le langage de programmation SAS. En outre, nous apprenons les composants du code de la macro SAS et certains avantages de la macro SAS
Voyons comment la macro SAS fonctionne.
Ne devenez pas obsolète & obtenez un Pink Slip
Follow DataFlair sur Google News & Restez en tête du jeu
1. Qu’est-ce qu’une macro SAS ?
Les macros aident essentiellement à réutiliser le code à différents endroits plusieurs fois sans avoir à taper le code entier encore et encore. Cela permet non seulement de gagner du temps mais aussi d’obtenir un code sans erreur.
Comprenons cela avec un exemple :
proc print data=Policysnapshot;where policydate='09Sep14'd;title "Below are the policy detail for 09-Sep-14";Run;
Le code SAS ci-dessus est écrit pour extraire les détails de niveau politique pour le 09-Sep-14 et disons que l’utilisateur doit exécuter ce code sur une base quotidienne après avoir changé la date (aux deux endroits) à la date actuelle.
Maintenant, regardons le même code en utilisant les macros SAS.
Proc Print Data=Sales.Policysnapshot;Where policydate="&sysdate9"d;Title "Below are the policy detail for %sysdate9";Run;
Dans ce cas, l’utilisateur n’a pas besoin de fournir une valeur pour la date actuelle. Le code choisira automatiquement une date courante à partir d’un système.
N’oubliez pas de lire – Fonctions SAS
Avantages de l’utilisation des macros SAS
Les macros SAS nous permettent :-
- De faciliter notre travail en réutilisant un code similaire plusieurs fois après l’avoir défini une seule fois.
- D’effectuer des changements dans une variable à un seul endroit et de les refléter à plusieurs endroits.
- Les données de votre programme pilotées, c’est-à-dire laisser SAS décider de ce qu’il faut faire en fonction des valeurs réelles des données
Par-dessus tout, cela permet de réduire les efforts nécessaires à la lecture et à l’écriture du Code SAS.
Composantes du Code Macro SAS
Le Code Macro SAS a deux composantes : Les macros et les variables de macros. Dans un programme SAS, ils ont désigné différemment :-
- &Nom fait référence à la variable macro
- %Nom fait référence à la macro
Variables macro SAS
Une variable macro est comme une variable standard, sauf que sa valeur n’est pas un ensemble de données et n’a qu’une valeur à un seul caractère. La valeur d’une variable macro peut être un nom de variable, un chiffre, ou tout texte que vous voulez substituer dans votre programme.
La portée d’une variable Macro peut être locale ou globale, selon la façon dont nous l’avons définie. Si elle est définie à l’intérieur d’un programme macro, la portée est locale (uniquement disponible pour ce code macro). Cependant, si nous l’avons définie à l’extérieur (dans le corps principal), alors nous pouvons l’utiliser n’importe où dans le programme SAS.
Nous utilisons l’instruction %LET pour créer et attribuer une valeur aux variables macro.
% LET <Nom de la macro-variable>=Valeur;
La valeur de la macro-variable dans l’instruction %Let peut être n’importe quelle chaîne et elle a les caractéristiques suivantes :-
- Elle peut être de n’importe quelle longueur entre 0 et 65,534 caractères
- Les valeurs numériques sont également stockées comme une chaîne de caractères
- Les expressions mathématiques ne sont pas évaluées
- Les guillemets peuvent également être stockés comme une partie d’une valeur
- Les blancs de début et de fin sont supprimés avant l’affectation
SAS Les variables macro sont référencées en utilisant une esperluette (&) suivie d’un nom de variable macro.
N’oubliez pas de vérifier – Fonctions de chaîne SAS ou fonctions de caractères
&<Nom de la macro-variable>
Exemple:-
Nom de la macro-variable
Nous pouvons également déclarer plusieurs macro-variables et les utiliser à différents endroits dans le Code SAS. La variable macro ne se résout pas lorsqu’elles accèdent entre guillemets simples. Par conséquent, nous devons utiliser des guillemets doubles pour les référencer.
;
macro-variable-1 <…macro-variable-n>
est le nom d’une ou de plusieurs macro-variables SAS.
L’instruction %GLOBAL crée une ou plusieurs macro-variables globales et attribue des valeurs nulles aux variables. Les variables macro globales sont des variables qui sont disponibles pendant toute l’exécution de la session ou du travail SAS.
Une variable macro créée avec une instruction %GLOBAL a une valeur nulle jusqu’à ce que vous lui attribuiez une autre valeur. Si une variable macro globale existe déjà et que vous spécifiez cette variable dans une instruction %GLOBAL, la valeur existante reste inchangée.
Doit apprendre – Qu’est-ce que la syntaxe SAS et comment nous pouvons les utiliser
ii. Variables macro locales SAS
La syntaxe d’une variable macro locale en programmation SAS :
%LOCAL macro-variable-1 <…macro-variable-n>;
macro-variable-1 <…macro-variable-n>
est le nom d’une ou plusieurs variables macro
L’instruction %LOCAL crée une ou plusieurs variables macro locales. Une variable macro créée avec %LOCAL a une valeur nulle jusqu’à ce que vous lui attribuiez une autre valeur. Les variables macro locales sont des variables qui ne sont disponibles que pendant l’exécution de la macro dans laquelle elles sont définies.
Utilisez l’instruction %LOCAL pour vous assurer que les variables macro créées plus tôt dans un programme ne sont pas modifiées par inadvertance par des valeurs assignées à des variables portant le même nom dans la macro actuelle. Si une variable macro locale existe déjà et que vous spécifiez cette variable dans une instruction %LOCAL, la valeur existante reste inchangée.
Comprendre le concept – Ensemble de données SAS – Spécial &Ensemble de données intégré dans SAS
iii. Comparaison – Variables globales vs locales
- L’instruction %LOCAL et l’instruction %GLOBAL créent toutes deux des variables macro ayant une portée spécifique. Cependant, l’instruction %LOCAL crée des variables macro locales qui n’existent que pendant l’exécution de la macro qui contient la variable, et l’instruction %GLOBAL crée des variables macro globales qui existent pour la durée de la session ou du travail.
- Si vous définissez une variable macro locale et une variable macro globale avec le même nom, la facilité macro utilise la valeur de la variable locale pendant l’exécution de la macro qui contient cette variable locale. Lorsque la macro qui contient la variable locale n’est pas en cours d’exécution, la facilité macro utilise la valeur de la variable globale.
Fonctions des macros SAS
Ces fonctions des macros SAS ont une syntaxe similaire, par rapport à leurs fonctions homologues dans les étapes de données et elles renvoient également les résultats de manière similaire.
i.Fonction %UPCASE()
Nous utilisons cette fonction pour convertir la casse des lettres en majuscules:
Syntaxe:- %UPCASE (Argument)
Exemple:-
%Let heading=this is detail of country;Proc Print Data=Orion.Country;Title %UPCASE(&heading);Run;
Elle imprimera le titre comme « C’EST LE DÉTAIL DU PAYS ».
Explorez les principales applications de la programmation SAS
ii. Fonction %SUBSTR()
Cette fonction renvoie le nombre donné de caractères à partir de la position spécifiée.
Syntaxe:- %SUBSTR (argument, position )
Si un nombre de caractères n’est pas fourni, une fonction %SUBSTR renvoie les caractères à partir de la position donnée jusqu’à la fin de la chaîne de caractères.
Exemple:-
%Let abc=this is detail of country;%LET def=%SUBSTR(&abc,19,7);Proc Print Data=Orion.Country;Title %Upcase(&def);Run;
Summary
Hence, dans ce tutoriel sur les macros SAS. J’espère que vous avez appris de nouvelles façons de manipuler les données dans SAS. Vous serez maintenant en mesure de gagner beaucoup de temps en incorporant la Macro SAS dans votre programme. Restez à l’écoute pour apprendre d’autres choses aussi intéressantes en SAS.