SAS - Leggi dati grezzi

SAS può leggere i dati da varie fonti che includono molti formati di file. I formati di file utilizzati nell'ambiente SAS sono discussi di seguito.

  • Set di dati ASCII (testo)
  • Dati delimitati
  • Dati Excel
  • Dati gerarchici

Lettura del set di dati ASCII (testo)

Questi sono i file che contengono i dati in formato testo. I dati sono solitamente delimitati da uno spazio, ma possono esserci anche diversi tipi di delimitatori che SAS può gestire. Consideriamo un file ASCII contenente i dati del dipendente. Leggiamo questo file utilizzando l'estensioneInfile dichiarazione disponibile in SAS.

Esempio

Nell'esempio seguente leggiamo il file di dati denominato emp_data.txt dall'ambiente locale.

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;

Quando il codice precedente viene eseguito, otteniamo il seguente output.

Lettura di dati delimitati

Questi sono i file di dati in cui i valori delle colonne sono separati da un carattere di delimitazione come una virgola o una pipeline ecc. In questo caso usiamo il dlm opzione in infile dichiarazione.

Esempio

Nell'esempio seguente leggiamo il file di dati denominato emp.csv dall'ambiente locale.

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;

Quando il codice precedente viene eseguito, otteniamo il seguente output.

Lettura dei dati di Excel

SAS può leggere direttamente un file Excel utilizzando la funzione di importazione. Come visto nel capitolo Set di dati SAS, può gestire un'ampia varietà di tipi di file, incluso MS excel. Supponendo che il file emp.xls sia disponibile localmente nell'ambiente SAS.

Esempio

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;

Il codice sopra legge i dati dal file excel e fornisce lo stesso output dei due tipi di file precedenti.

Lettura di file gerarchici

In questi file i dati sono presenti in formato gerarchico. Per una data osservazione c'è un record di intestazione sotto il quale sono menzionati molti record di dettaglio. Il numero di record di dettagli può variare da un'osservazione all'altra. Di seguito è riportata un'illustrazione di un file gerarchico.

Nel file sottostante sono elencati i dettagli di ogni dipendente in ogni dipartimento. Il primo record è il record di intestazione che menziona il dipartimento e il record successivo pochi record che iniziano con DTLS sono i record dei dettagli.

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

Esempio

Per leggere il file gerarchico utilizziamo il codice seguente in cui identifichiamo il record di intestazione con una clausola IF e utilizziamo un ciclo do per elaborare il record di dettagli.

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;

Quando il codice precedente viene eseguito, otteniamo il seguente output.