SAS - Lire les données brutes

SAS peut lire des données à partir de diverses sources qui incluent de nombreux formats de fichiers. Les formats de fichier utilisés dans l'environnement SAS sont décrits ci-dessous.

  • Ensemble de données ASCII (texte)
  • Données délimitées
  • Données Excel
  • Données hiérarchiques

Lecture de l'ensemble de données ASCII (texte)

Ce sont les fichiers qui contiennent les données au format texte. Les données sont généralement délimitées par un espace, mais il peut y avoir différents types de délimiteurs que SAS peut également gérer. Considérons un fichier ASCII contenant les données des employés. Nous lisons ce fichier en utilisant leInfile déclaration disponible en SAS.

Exemple

Dans l'exemple ci-dessous, nous lisons le fichier de données nommé emp_data.txt de l'environnement local.

data TEMP; 
   infile 
   '/folders/myfolders/sasuser.v94/TutorialsPoint/emp_data.txt'; 
   input empID empName $ Salary Dept $ DOJ date9. ;
   format DOJ date9.;
   run;
   PROC PRINT DATA = TEMP;
RUN;

Lorsque le code ci-dessus est exécuté, nous obtenons la sortie suivante.

Lecture de données délimitées

Ce sont les fichiers de données dans lesquels les valeurs de colonne sont séparées par un caractère de délimitation comme une virgule ou un pipeline, etc. Dans ce cas, nous utilisons le dlm option dans le infile déclaration.

Exemple

Dans l'exemple ci-dessous, nous lisons le fichier de données nommé emp.csv à partir de l'environnement local.

data TEMP; 
   infile 
   '/folders/myfolders/sasuser.v94/TutorialsPoint/emp.csv' dlm=","; 
   input empID empName $ Salary Dept $ DOJ date9. ;
   format DOJ date9.;
   run;
   PROC PRINT DATA = TEMP;
RUN;

Lorsque le code ci-dessus est exécuté, nous obtenons la sortie suivante.

Lire des données Excel

SAS peut lire directement un fichier Excel à l'aide de la fonction d'importation. Comme vu dans le chapitre Jeux de données SAS, il peut gérer une grande variété de types de fichiers, y compris MS excel. En supposant que le fichier emp.xls est disponible localement dans l'environnement SAS.

Exemple

FILENAME REFFILE
"/folders/myfolders/TutorialsPoint/emp.xls"
TERMSTR = CR;

PROC IMPORT DATAFILE = REFFILE
DBMS = XLS
OUT = WORK.IMPORT;
GETNAMES = YES;
RUN;
PROC PRINT DATA = WORK.IMPORT RUN;

Le code ci-dessus lit les données du fichier Excel et donne la même sortie que les deux types de fichiers ci-dessus.

Lecture de fichiers hiérarchiques

Dans ces fichiers, les données sont présentes dans un format hiérarchique. Pour une observation donnée, il y a un enregistrement d'en-tête sous lequel de nombreux enregistrements de détail sont mentionnés. Le nombre d'enregistrements de détails peut varier d'une observation à l'autre. Vous trouverez ci-dessous une illustration d'un fichier hiérarchique.

Dans le fichier ci-dessous, les détails de chaque employé de chaque département sont répertoriés. Le premier enregistrement est l'enregistrement d'en-tête mentionnant le département et le prochain enregistrement quelques enregistrements commençant par DTLS sont l'enregistrement de détails.

DEPT:IT 
DTLS:1:Rick:623 
DTLS:3:Mike:611 
DTLS:6:Tusar:578 
DEPT:OPS
DTLS:7:Pranab:632
DTLS:2:Dan:452
DEPT:HR
DTLS:4:Ryan:487
DTLS:2:Siyona:452

Exemple

Pour lire le fichier hiérarchique, nous utilisons le code ci-dessous dans lequel nous identifions l'enregistrement d'en-tête avec une clause IF et utilisons une boucle do pour traiter l'enregistrement de détails.

data employees(drop = Type);
   length Type $ 3  Department
      empID $ 3 empName $ 10 Empsal 3 ;
   retain Department;
   infile 
   '/folders/myfolders/TutorialsPoint/empdtls.txt' dlm = ':';
   input Type $ @;
   if Type = 'DEP' then 
      input Department $;
   else do;
      input empID  empName $ Empsal ;
      output;
   end;
run;

   PROC PRINT DATA = employees;
RUN;

Lorsque le code ci-dessus est exécuté, nous obtenons la sortie suivante.