30 3. L’IMPORTAZIONE DI DATASET ESTERNI 3.1 Introduzione Molto frequentemente i dati da elaborare con un programma SAS non devono essere inseriti da programma, ma sono già disponibili in file memorizzatiti sul pc o su supporti esterni. In questi casi, quale che sia il tipo di dataset (ossia la sua estensione), il SAS è in grado di leggere le informazioni in esso contenute, ma le istruzioni variano a seconda della sua natura: in alcuni casi è necessario utilizzare istruzioni contenute in un DATA STEP, in altri casi istruzioni di PROC STEP. Più precisamente, con le istruzioni contenute in un DATA STEP è possibile effettuare l’importazione di dataset SAS e di dataset testuali (con estensione .txt), mentre per la lettura di altri tipi di dataset, e in particolare dei dataset Excel, è necessario l’utilizzo di una particolare procedura SAS. Nei due paragrafi successivi sono descritte le istruzioni utilizzate in un DATA STEP per la lettura di dataset in formato SAS e di dati testuali, nel paragrafo 3.4 si descrivono genericamente le procedure SAS, mentre nell’ultimo paragrafo si analizza la procedura SAS utilizzata per l’importazione di dataset esterni in formati diversi dal SAS e dai dati testuali.
17
Embed
3. L’IMPORTAZIONE DI DATASET ESTERNI 3.1 Introduzione · 2020-03-29 · 31 3.2 L’importazione di dataset SAS I dataset SAS, ossia i dataset ottenuti come output con un programma
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
30
3. L’IMPORTAZIONE DI DATASET ESTERNI
3.1 Introduzione
Molto frequentemente i dati da elaborare con un programma SAS non devono essere inseriti da
programma, ma sono già disponibili in file memorizzatiti sul pc o su supporti esterni. In questi casi,
quale che sia il tipo di dataset (ossia la sua estensione), il SAS è in grado di leggere le informazioni
in esso contenute, ma le istruzioni variano a seconda della sua natura: in alcuni casi è necessario
utilizzare istruzioni contenute in un DATA STEP, in altri casi istruzioni di PROC STEP.
Più precisamente, con le istruzioni contenute in un DATA STEP è possibile effettuare
l’importazione di dataset SAS e di dataset testuali (con estensione .txt), mentre per la lettura di altri
tipi di dataset, e in particolare dei dataset Excel, è necessario l’utilizzo di una particolare procedura
SAS.
Nei due paragrafi successivi sono descritte le istruzioni utilizzate in un DATA STEP per la lettura
di dataset in formato SAS e di dati testuali, nel paragrafo 3.4 si descrivono genericamente le
procedure SAS, mentre nell’ultimo paragrafo si analizza la procedura SAS utilizzata per
l’importazione di dataset esterni in formati diversi dal SAS e dai dati testuali.
31
3.2 L’importazione di dataset SAS
I dataset SAS, ossia i dataset ottenuti come output con un programma SAS, sono strutturati come
nella tabella 2.1.1 e hanno l’estensione “.sas7bdat”. Questo formato è diventato abbastanza
frequente: anche l’ISTAT prevede il formato SAS in molte banche dati: per esempio, i microdati1
ad uso pubblico sono disponibili nei formati STATA, SAS, R e TXT.
Per importare (o leggere) nel programma un dataset SAS che si trovi sul pc in uso o su un
dispositivo collegato (come per esempio una chiavetta USB) è necessario indicare al software il
percorso da seguire e il nome del data set, completo di estensione.
L’istruzione necessaria è composta dalla parola chiave “set”, seguita da una stringa che contiene
tutte le informazioni (percorso-nome completo del dataset) inserite fra apici (e il SAS evidenzia
automaticamente in viola tali informazioni.). Questa istruzione va digitata nella riga successiva a
quella contenente la parola chiave “data” seguita dal nome del dataset.
Ipotizzando, per esempio, che dal sito ISTAT sia stato scaricato il dataset “hbs_a2015” relativo
all’indagine sulle spese delle famiglie (anno 2015) e che questo dataset sia stato salvato nella
directory “c:\users\naddeo\desktop”, un programma in grado di importare il dataset potrebbe essere
il seguente
Esempio 3.2.1
data famiglie;
set "c:\users\naddeo\desktop\hbs_a2015.sas7bdat";
proc print;
run;
dove l’estensione del dataset “.sas7bdat” indica che il dataset è in formato SAS.
Se, invece, si volesse importare nel programma il dataset SAS “studenti.sas7bdat” contenuto nella
directory “c:\es_MRS”, un programma SAS in grado di leggere il dataset potrebbe avere la forma
seguente
1 I file di microdati ad uso pubblico sono collezioni di dati scaricabili via web, resi anonimi e privi di riferimenti che ne
permettano il collegamento con le unità intervistate (http://www.istat.it/it/archivio/microdati+ad+uso+pubblico)
32
Esempio 3.2.2
data studenti;
set "c:\es_MRS\studenti.sas7bdat";
proc print;
run;
Pur avendo attribuito lo stesso nome al dataset di input e a quello letto all’interno del programma, i
due dataset sono in realtà ben distinti, in quanto presenti su due diverse directory del pc.
Ovviamente è possibile importare più dataset all’interno di uno stesso programma, ma è evidente
che a ciascuno di essi andrà attribuito un nome differente, altrimenti il SAS andrebbe a ricoprire il
dataset creato in precedenza.
Se, per esempio, si volessero importare due dataset diversi, il primo dei quali, relativo a individui di
sesso maschile, è denominato “males” ed è presente nella directory “C:\stat”, mentre il secondo,
relativo a individui di sesso femminile, è denominato “females” ed è presente nella medesima
directory, si potrebbe utilizzare un programma analogo a quello riportato nel riquadro seguente
Esempio 3.2.3
data maschi;
set "c:\stat\males.sas7bdat";
proc print;
data femmine;
set "c:\stat\females.sas7bdat";
proc print;
run;
33
3.3 L’importazione di dataset testuali
Molti dataset sono in formato testuale e in questo caso il loro contenuto è visibile con qualsiasi
editor di testo. Le informazioni contenute al loro interno sono generalmente strutturate in modo che
le righe corrispondono alle n unità statistiche e le colonne alle h variabili rilevate su tali unità.
Pertanto il contenuto di questi dataset è un insieme di numeri e/o caratteri alfabetici che, letti per
riga, indicano le determinazioni assunte dalle h variabili sulle n unità statistiche considerate.
In altre situazioni ciascuna riga del dataset contiene le determinazioni assunte dalle variabili
considerate su più unità statistiche, mentre in altri casi l’osservazione su una singola unità è
contenuta su più righe diverse. Tutte queste eccezioni saranno analizzate in dettaglio nelle pagine
seguenti.
Per leggere un dataset testuale presente sul pc, o su un supporto esterno, è necessario indicare al
SAS il suo nome, completo di estensione, e il percorso da seguire per trovarlo, così come è stato
fatto nel caso della lettura di un dataset SAS. L’unica differenza nella lettura dei due tipi di archivi
è l’istruzione da utilizzare che, nel caso di un dataset testuale, è la parola chiave “infile”, che va
sempre seguita da una stringa contenente il percorso e il nome completo del dataset inseriti fra apici
(il SAS evidenzia automaticamente in viola queste informazioni). Come nel caso precedente, questa
istruzione va digitata nella riga successiva a quella in cui compare l’istruzione “data”.
Si supponga, per esempio, che si voglia leggere il seguente dataset, denominato EUnonCom.txt,
Albania 227010 214828
Bielorussia 1636 7300
Bosnia-Erzegovina 14315 11606
Kosovo 27887 21947
Macedonia, Repubblica di 38203 33939
Moldova 43128 87319
Montenegro 906 966
Russia, Federazione 7334 32790
Serbia 7856 7294
Turchia 17202 17507
Ucraina 12321 9163
che riporta la cittadinanza, il numero di persone di sesso maschile e di sesso femminile provenienti
dall’Europa non comunitaria che risultano regolarmente presenti in Italia al 1° gennaio 2017 (fonte
ISTAT). In questo caso, come si vede, ciascuna riga corrisponde ad una singola unità statistica.
34
Si tratta di un dataset in formato fisso in cui la variabile “cittadinanza” può assumere
determinazioni più lunghe di 8 caratteri che, per alcune osservazioni, contengono anche spazi
bianchi. In casi come questi la lettura del dataset deve essere effettuata indicando al SAS la
lunghezza e la posizione delle singole variabili, ossia specificando le colonne in cui sono contenute
le singole determinazioni.
Un esempio di programma utilizzabile per la lettura del dataset è riportato nel riquadro successivo,
in cui si è ipotizzato che il dataset si trovi nella directory c:\dataset.
Esempio 3.3.1 /*LETTURA DI UN DATASET TESTUALE ESTERNO IN FORMATO FISSO*/
data extraeuropei;
infile 'c:\dataset\eunoncom.txt'; /*il SAS non distingue fra minuscole e