Modernisation SAS : Oubliez le Data Step Classique et Passez à la Vitesse Supérieure avec PROC DS2

Ce code est également disponible en : Deutsch English Español Français
Niveau de difficulté
Débutant
Publié le :
Simon

Le Conseil de l'Expert

Simon
Expert SAS et fondateur.

Contrairement au Data Step classique ou vous devez utiliser la condition if n=1 pour initialiser des variables, la methode INIT de la PROC DS2 est structurellement concue pour s'executer automatiquement une seule fois avant le traitement des lignes, ce qui rend votre code plus propre, plus lisible et plus proche des standards de programmation actuels comme Python ou Java.

Le script commence par définir la libname 'sash' pour pointer vers la bibliothèque système SASHELP. Ensuite, il utilise la procédure DS2 pour définir un programme de données. Ce programme crée une nouvelle table persistante 'tatat', en spécifiant l'option 'overwrite=yes' pour remplacer la table si elle existe déjà. Deux variables, 'blah' (caractère de longueur 10) et 'blih' (entier), sont déclarées. La méthode 'init' initialise 'blih' à 5 et 'blah' à 'fdj'. La méthode 'run' lit toutes les observations du jeu de données 'sash.class' (SASHELP.CLASS), ce qui peuple la nouvelle table 'tatat' avec les données de 'class' et les valeurs initialisées pour 'blah' et 'blih' pour chaque observation.
Analyse des données

Type : SASHELP


Le script lit les données du jeu de données standard 'class' disponible dans la bibliothèque 'SASHELP'. Aucune donnée externe ou création de données via 'datalines' n'est utilisée pour la source principale.

1 Bloc de code
PROC DS2 Data
Explication :
Ce bloc SAS configure l'accès à la bibliothèque SASHELP et exécute un programme DS2. Le programme DS2 crée une nouvelle table 'tatat' en se basant sur le contenu de SASHELP.CLASS. Il initialise également les variables 'blih' et 'blah' pour chaque enregistrement copié, démontrant une manipulation de données de base et la déclaration de variables dans l'environnement DS2. L'option 'overwrite=yes' est cruciale pour la reproductibilité du script.
Copié !
1LIBNAME sash "!SASROOT\core\sashelp";
2 
3PROC DS2;
4 DATA tatat (overwrite=yes);
5 dcl char(10) blah;
6 dcl int blih;
7 method init ();
8 blih=5;
9 blah='fdj';
10 END;
11 method RUN();
12 SET sash.class;
13 END;
14 enddata;
15 RUN;
16QUIT;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.

Documentation liée

Aucune documentation spécifique pour cette catégorie.