INFILE STATEMENT

L'opzione infile permette di specificare la locazione del file da importare.

Le opzioni di questa statements permettono inoltre di eseguire particolari azioni di lettura  come ad esempio la non lettura delle label, la specifica dei delimitatori,considerare i missing values non in formato Sas (cioe .) oppure leggere un set di osservazioni.

Vediamo queste opzioni attraverso alcuni casi tipici.

LETTURA DI UN SET DI OSSERVAZIONI (firstobs   obs)

Se il file di importazione presenta il nome delle variabili in testa, consiglio di ignorare questa osservazione (che verra gestita tramite l'input statement).

Il più delle volte i nomi delle variabili si trovano nella prima riga del file. Si dovra allora usare il seguente codice:

infile "percorso\nomefile" firstobs=2;

In questo modo Sas inizierà a leggere dalla seconda riga.

Più in generale è possibile leggere solo un set determinato di osservazioni con questo codice:

infile "percorso\nomefile" firstobs=5 obs=10;

In questo modo Sas leggerà solamente dalla quinta alla decima osservazione.

LETTURA DI FILE CON DELIMITATORI DIVERSO DALLO SPAZIO (dlm)

I delimitatori dei dati possono essere diversi. I più comuni sono spazi tabulatori virgole ma anche &. Per dire a Sas quale delimitatore è presente nel file importato si usa l'opzione DLM. Ecco alcuni esempi:

infile "percorso\nomefile" firstobs=2 dlm=",";  /*importa dati delimitati da virgole*/

infile "percorso\nomefile" firstobs=2 dlm="09"x;  /*importa dati delimitati da tabulazioni*/ 

LETTURA DI FILE CON MISSING VALUES NON NEL FORMATO SAS (missover dsd)

Come sappiamo Sas considerare valori mancanti equivalenti al ".". Il più delle volte i file da importare come valore mancante hanno semplicemente spazi vuoti o addirittura altri simboli.

Le strade da prendere in questo caso sono due: o si importa il data-set e poi eventualmente si ricodifica al fine di avere missing values in formato Sas, oppure gia in fase di importazione si cerca di leggere il data-set nella maniera "corretta".

A questo scopo ci vengono in aiuto due opzioni Missover  e  dsd. Vediamo alcuni esempi per chiarire l'utilizzo delle due opzioni.

se il file da importare è :

marco 22 m 1.75 71
laura 25 f
giulio 32 m 1.80
...

Sas nel leggere la seconda riga si ferma alla terza variabile e non considera niente altro causando errori. Il seguente codice:

infile "percorso\nomefile" firstobs=2 missover;

input  nome eta sesso altezza peso;

Permette invece di considerare come missing values i valori che non esistono.

Quando si importano file con delimitatori, il doppio delimitatore (ad esempio una doppia virgola) significa valore mancante. In questo caso ci viene in aiuto l'pzione dsd che tra le altre funzioni permette a Sas di considerare un doppio delimitatore come valore mancante. Ecco un esempio:

infile "percorso\nomefile" firstobs=2 dlm="09"x dsd;