17
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.

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

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 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

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.

Page 2: 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

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)

Page 3: 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

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;

Page 4: 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

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.

Page 5: 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

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

maiuscole*/

input cittadinanza $ 1-27 maschi 28-33 femmine 35-40;

proc print;

run;

L’output fornito dalla proc print risulta il seguente

Oss cittadinanza maschi femmine

1 Albania 227010 214828

2 Bielorussia 1636 7300

3 Bosnia-Erzegovina 14315 11606

4 Kosovo 27887 21947

5 Macedonia, Repubblica di 38203 33939

6 Moldova 43128 87319

7 Montenegro 906 966

8 Russia, Federazione 7334 32790

9 Serbia 7856 7294

10 Turchia 17202 17507

11 Ucraina 12321 9163

Quanto descritto a proposito del formato utilizzato nella creazione di un dataset SAS resta valido

anche se si tratta di un dataset testuale letto dall’esterno del programma. Così, per esempio, per

Page 6: 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

35

leggere il dataset precedente si possono utilizzare le seguenti istruzioni in cui il formato di lettura è

misto

Esempio 3.3.1 /*LETTURA DI UN DATASET TESTUALE ESTERNO IN FORMATO MISTO*/

data extraeuropei;

infile 'c:\dataset\eunoncom.txt';

input cittadinanza $ 1-27 maschi femmine;

proc print;

run;

Si è detto in precedenza che, in alcune situazioni, le righe degli archivi da leggere non contengono

una singola osservazione, ma più osservazioni una di seguito all’altra. In questo caso occorre

esplicitare la reale struttura di ciascun record, indicando quante sono le variabili rilevate su ciascuna

unità statistica mediante il simbolo @@.

Si consideri, per esempio, il seguente dataset “studenti1.txt”

m 23 f 19 m 18 m 22 f 25 f 26

che riporta il sesso (che assume le determinazioni “m” per maschio e “f” per femmina) e l’età

(espressa in valori) di 6 studenti su un’unica riga.

Per far leggere correttamente il dataset al SAS sarà sufficiente scrivere un programma in cui viene

specificato il nome del dataset (completo di estensione), il percorso da seguire per trovarlo e il

numero di variabili. Se, per esempio, si suppone che il dataset si trovi in “c:\dataset” il programma

SAS potrebbe assumere la forma seguente

Esempio 3.3.2 /*LETTURA DI PIU' OSSERVAZIONI DA UNO STESSO RECORD*/

data studenti;

infile 'c:\dataset\studenti1.txt';

input genere $ eta @@;

proc print;

run;

In pratica si sta dicendo al software che il singolo record è formato dalle determinazioni di due sole

variabili, di cui la prima (genere) è alfanumerica, mentre la seconda (eta) è numerica. Il simbolo

“@@” indica al SAS la fine del record.

Il risultato dell’esecuzione del programma precedente fornisce un dataset SAS così strutturato

Page 7: 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

36

Oss genere eta

1 m 23

2 f 19

3 m 18

4 m 22

5 f 25

6 f 26

Si consideri ora il seguente dataset (per ipotesi contenuto sempre nella medesima directory),

denominato “studenti2.txt”

m 70 168 f 50 161

m 68 172 m 82 194 f 55 159 f 56 157

che riporta le informazioni di 6 studenti classificati per sesso, peso corporeo e altezza.

In questo caso la lettura può essere effettuata mediante il seguente programma

Esempio 3.3.3 /*LETTURA DI PIU' OSSERVAZIONI DA UNO STESSO RECORD*/

data studenti;

infile 'c:\dataset\studenti2.txt';

input genere $ peso altezza @@;

proc print;

run;

che restituisce questo output

Oss genere peso altezza

1 m 70 168

2 f 50 161

3 m 68 172

4 m 82 194

5 f 55 159

6 f 56 157

Page 8: 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

37

Oltre ai casi in cui una singola riga di un dataset contiene le osservazioni relative a più unità

statistiche, esistono casi in cui una singola osservazione è spezzata su più righe del dataset. In

questo caso occorre indicare al SAS che, per ciascuna unità statistica, il record corrispondente è

composto da più variabili le cui determinazioni compaiono su più righe.

Considerata la prima unità statistica, l’istruzione necessaria in questo caso consiste nel digitare il

simbolo “/” dopo l’indicazione dell’ultima variabile che compare sulla prima riga e nel continuare a

elencare le variabili successive fino a completare l’intero record. La fine di tale elenco viene

indicata mediante il solito punto e virgola (“;”).

Nell’esempio successivo si considera il dataset “comuni.txt” che riporta alcuni dati relativi a 4

comuni italiani: la prima riga riporta la zona e l’emissione di gas a effetto serra, la seconda riga la

dimensione del comune (p=piccolo, m=medio), mentre la terza riga contiene la percentuale di

famiglie che denunciano irregolarità nella distribuzione dell’acqua potabile e la percentuale di

raccolta differenziata.

A 38

m

4.8 56.7

A 21.9

p

3.2 71.9

B 20.5

p

1.8 57.5

B 27.2

m

5.1 63.9

Supponendo che il dataset si trovi nella medesima directory considerata in precedenza (c:\dataset),

occorre indicare che su ciascuna unità sono state rilevate 5 variabili. Un possibile programma SAS

adeguato per l’importazione di questo dataset è riportato nel riquadro successivo

Esempio 3.3.4 /*LETTURA DI UN'OSSERVAZIONE SU PIU' RECORD*/

data stat_comuni;

infile 'c:\dataset\comuni.txt';

input zona $ em_gas_ef_serra / dim $ irreg_acqua racc_diff;

proc print;

run;

Page 9: 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

38

In questo caso dopo le prime due variabili (“zona” e “em_gas_ef_serra”) è stato inserito il

carattere speciale “/” che indica al SAS di continuare a considerare altre variabili, fino a incontrare

il punto e virgola. In questo modo il software sa che il record effettivo è composto dalle prime due

variabili più tutte le successive, fino a quando trova il punto e virgola (“dim”, “irreg_acqua” e

“racc_diff”).

L’output della proc print risulta infatti il seguente

Oss zona em_gas_ef_serra dim irreg_acqua racc_diff

1 A 38.0 m 4.8 56.7

2 A 21.9 p 3.2 71.9

3 B 20.5 p 1.8 57.5

4 B 27.2 m 5.1 63.9

Page 10: 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

39

3.4 Introduzione ai PROC STEP

L’importazione di dataset con formato diverso dai precedenti viene effettuata non all’interno di un

DATA STEP, ma utilizzando una particolare procedura, ossia un PROC STEP. Come si è detto in

precedenza, un programma SAS è generalmente costituito da uno o più DATA STEP e/o da uno o più

PROC STEP. Un PROC STEP richiede al software l’esecuzione di una determinata procedura,

contenuta nelle librerie del sistema SAS, ossia l’esecuzione di un programma preconfezionato in grado

di effettuare un particolare tipo di elaborazione dei dati.

Con un PROC STEP si possono leggere dataset in formati diversi dal SAS o dai dataset testuali, oppure

creare e/o elaborare dataset SAS che, a loro volta, possono essere analizzati successivamente attraverso

DATA STEP o PROC STEP.

Un PROC STEP inizia con la parola chiave “proc” seguita dal nome della procedura che si vuole

eseguire e termina con un DATA STEP, con un altro PROC STEP o con l'istruzione finale “run;”.

Tutte le volte in cui si dispone di una procedura che consente di eseguire il tipo di analisi desiderata

sarà sufficiente individuare la procedura stessa e selezionare le opzioni desiderate.

Le procedure note al SAS sono estremamente numerose, tanto che il solo modulo “Base” ne contiene

una settantina, a cui si aggiungono numerose altre procedure disponibili nei moduli più specializzati in

determinati tipi di elaborazione dei dati.

In generale un qualsiasi PROC STEP ha le seguenti caratteristiche

- Comincia sempre con la parola chiave “proc”;

- Si compone di un insieme di istruzioni;

- Produce un output di default sulla finestra di visualizzatore dei risultati;

- Può produrre un output più complesso o più leggero utilizzando le opzioni (di default le procedure

calcolano gli indici statistici più noti, ma se ne possono richiedere altri, attraverso specifiche opzioni)

Page 11: 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

40

3.5 La Proc IMPORT

La lettura di dataset esterni con un formato diverso dal SAS e dai dataset testuali viene effettuata

mediante la proc import all’interno della quale è necessario indicare al software le medesime

informazioni già viste nei casi precedenti, ossia il percorso da seguire (che non può essere più lungo di

201 caratteri) e il nome esatto del dataset (completo di estensione) a cui, questa volta, va aggiunto

anche il formato del dataset.

La sintassi della procedura è

PROC IMPORT DATAFILE="filename" | TABLE="tablename"

OUT=<libref.>SAS data set <(SAS data set option(s))>

<DBMS=identifier> <REPLACE>;

dove bisogna scegliere fra le due parole chiave DATAFILE oppure TABLE che servono per specificare

se si tratta di:

- un dataset: in questo caso si usa l’istruzione datafile = <nome_del_dataset>)

- una tabella: in questo caso si usa l’istruzione datatable = <nome_della_tabella>)

L’opzione “out=” serve per definire il nome del dataset SAS che viene creato dalla lettura del dataset e

che può essere sia temporaneo, sia permanente (a seconda della libreria associata). Queste istruzioni

possono essere completate con ulteriori opzioni facoltative relative alle caratteristiche del dataset che si

crea.

L’opzione “dbms=” serve per indicare al software il formato dei dati o della tabella da importare e può

assumere le determinazioni riportate nella prima colonna della tabella 3.5.1, mentre nella seconda

colonna della stessa tabella è specificata l’estensione del dataset (leggibile cliccando sul dataset con il

tasto destro del mouse e selezionando “proprietà”). In queste dispense ci si occuperà dei soli file Excel

con estensione “.xls”, ma tutti i discorsi rimangono validi anche per altri tipi di file.

L’opzione “replace” è opzionale e serve per sovrascrivere il dataset importato. Se non si usa questa

opzione un’eventuale seconda esecuzione dello stesso programma il SAS dà una segnalazione di errore,

avvertendo che il dataset in questione è già stato creato, per cui è generalmente preferibile inserire tale

opzione.

Page 12: 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

41

Tabella 3.5.1

Codifica dei dataset

Identificativo

DBMS Descrizione dataset

Estensione

dataset

ACCESS Microsoft Access 2000, 2002, 2003, 2007, 2010, and later table. The ACCESS LIBNAME

engine is used when DBMS=ACCESS.

.mdb

.accdb

ACCESSCS Microsoft Access table connecting remotely through SAS PC Files Serverusing the PCFILES

LIBNAME engine.

.mdb

.accdb

CSV Delimited file with comma-separated values .csv

DBF dBASE 5.0, IV, III+, and III files .dbf

DBFMEMO dBASE 5.0, IV, III+, and III files with memos FoxPro and Visual FoxPro files with memos

.dbf

.fpt

.dbt

DLM Delimited file (default delimiter is a blank) .*

DTA Stata file .dta

EXCEL Microsoft Excel 97, 2000, 2002, 2003, 2007, 2010, and later workbook using the LIBNAME

statement.

.xls

.xlsb

.xlsm

.xlsx

EXCEL4

EXCEL5 Microsoft Excel 4.0, Excel 5.0 or 7.0 (95) workbook. .xls

EXCELCS Microsoft Excel workbook connecting remotely through SAS PC Files Server. .xls,.xlsx,

.xlsb, xlsm

JMP JMP files in Version 7 and later format. .jmp

PARADOX Paradox DB files .db

PCFS (SAS PC

Files Server)

Microsoft Excel workbook files, JMP files, SPSS files, and Stata files connecting remotely

through SAS PC Files Server.

.xls, .jmp, .sav,

.dta

SAV SPSS file .sav

TAB Delimited file (tab-delimited values) .txt

WK1 Lotus1-2-3 Release 2 spreadsheet .wk1

WK3 Lotus 1-2-3 Release 3 spreadsheet .wk3

WK4 Lotus 1-2-3 Release 4 or 5 spreadsheet .wk4

XLS

Microsoft Excel 5.0, 95, 97, 2000, 2002, or 2003 workbook using file formats

Note: Transcoding is not supported for DBMS=XLS. Attempted execution of this operation

yields unpredictable results. Use DBMS=EXCEL or DBMS=EXCELCS with the SAS PC Files

Server as an alternative. Or, if your file has more than 255 columns, save the .xls file as .xlsx to

support transcoding.

.xls

XLSX Microsoft Excel 2007 and later workbook using file formats

Page 13: 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

42

Esempio 3.5.1

Considerato il dataset excel “occup.xls” contenuto in “C:\es_MRS” un programma in grado di creare

un dataset SAS temporaneo denominato “occupati” è il seguente

proc import datafile="c:\es_MRS\occup.xls"

dbms=XLS replace

out=occupati;

proc print;

run;

Esempio 3.5.2

Si consideri il dataset excel “brothers.xls”, contenuto nella directory “c:\es_MRS” che riporta i dati

relativi a 25 coppie di fratelli sui quali si sono rilevate le variabili:

- identificativo della coppia (“ident”),

- lunghezza (“l1”) della testa del primo fratello,

- larghezza (“b1”) della testa del primo fratello,

- lunghezza (“l2”) della testa del secondo fratello,

- larghezza (“b2”) della testa del secondo fratello,

dove tutte le variabili relative alla dimensione della testa sono espresse in millimetri.

Per creare un dataset permanente SAS nella medesima directory e per vederne il contenuto a terminale

si potrebbero utilizzare le istruzioni riportate nel riquadro seguente

libname libr1 "c:\es_MRS\";

proc import datafile="c:\es_MRS\brothers" out=libr1.fratelli dbms=xls replace;

proc print;

run;

Il dataset ottenuto risulta il seguente

Page 14: 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

43

Oss ident l1 b1 l2 b2

1 1 191 155 179 145

2 2 195 149 201 152

3 3 181 148 185 149

4 4 183 153 188 149

5 5 176 144 171 142

6 6 208 157 192 152

7 7 189 150 190 149

8 8 197 159 189 152

9 9 188 152 197 159

10 10 192 150 187 151

11 11 179 158 186 148

12 12 183 147 174 147

13 13 174 150 185 152

14 14 190 159 195 157

15 15 188 151 187 158

16 16 163 137 161 130

17 17 195 155 183 158

18 18 186 153 173 148

19 19 181 145 182 146

20 20 175 140 165 137

21 21 192 154 185 152

22 22 174 143 178 147

23 23 176 139 176 143

24 24 197 167 200 158

25 25 190 163 187 150

Page 15: 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

44

Esercizi riepilogativi

Esercizio 3.1

Creare il dataset temporaneo “neet” a partire dal dataset SAS relativo ai tassi regionali NEET che è

stato creato nell’esercizio 2.3. Visualizzare il contenuto del dataset a terminale formattando la variabile

neet in modo che sia composta da 2 cifre intere, il punto decimale e da due cifre decimali.

Soluzione

data neet;

set "c:\es_MRS\tasso_neet.sas7bdat";

proc print;

format neet comma5.2;

run;

Esercizio 3.2

Creare il dataset temporaneo vecchi_cell a partire a partire dal dataset testuale cellulari.txt (che si trova

nella directory "c:\es_MRS”) sapendo che le informazioni contenute su ciascuna riga riportano il

modello del telefono (variabile alfabetica), il peso in grammi, la lunghezza in millimetri, il numero di

suonerie disponibili, il numero di minuti di autonomia della batteria in standby e i minuti di

conversazione prima che la batteria si scarichi. Denominare le variabili rispettivamente modello, peso,

lungh, num_suon, num_min1 e num_min2. Visualizzare il contenuto del dataset a terminale.

Soluzione

data vecchi_cell;

infile 'C:\es_MRS\cellulari.txt';

input modello $ peso lungh num_suon num_min1 num_min2;

proc print;

run;

Page 16: 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

45

Esercizio 3.3

Creare il dataset temporaneo “grano” a partire dal dataset testuale grano1.txt (che si trova nella

directory "c:\es_MRS”) sapendo che le informazioni su una singola unità statistica sono contenute su 4

righe successive, la prima delle quali (alfabetica) riporta la varietà del grano, mentre le 3 successive i

valori di 3 diverse variabili quantitative. Denominare le variabili rispettivamente: specie, x1, x2 e x3.

Visualizzare il contenuto del dataset a terminale.

Soluzione

data grano;

infile 'c:\es_MRS\grano1.txt'; /*il SAS non distingue fra minuscole e maiuscole*/

input specie $ / x1 x2 x3;

proc print;

run;

Esercizio 3.4

Creare il dataset temporaneo “FILM” a partire dal dataset Excel “MOVIES.xls” (nella directory

"c:\es_MRS”) che contiene al suo interno informazioni su alcuni film. Visualizzare il contenuto del

dataset a terminale.

Soluzione

proc import datafile="c:\es_MRS\MOVIES.xls"

dbms=XLS replace

out=FILM;

proc print;

run;

Esercizio 3.5

Creare il dataset permanente “dati_orsi” a partire dal dataset Excel “orsi.xls” contenuto nella directory

"c:\es_MRS” che contiene i valori di alcune variabili rilevate su 19 orsi. Visualizzare il contenuto del

dataset a terminale.

Page 17: 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

46

Soluzione

libname libr1 "c:\es_MRS\";

proc import datafile="c:\es_MRS\orsi.xls"

dbms=XLS replace

out=libr1.dati_orsi;

proc print;

run;

Esercizio 3.6

Creare il dataset temporaneo “fumo” a partire dal dataset “smoking.xls” contenuto nella directory

"c:\es_MRS” che contiene i valori di quattro variabili rilevate su 6 individui, dove ”sbp” indica la

pressione sistolica, “male” assume il valore 1 se il soggetto è maschio e il valore 0 se femmina,

“smoker” assume valore 1 se il soggetto è un fumatore e 0 altrimenti, “age” indica l’età. Visualizzare il

contenuto del dataset a terminale.

Soluzione

proc import datafile="c:\es_MRS\smoking.xls" out=fumo dbms=XLS replace;

proc print;

run;

L’output ottenuto è

Oss sbp male smoker age

1 131 1 1 34

2 132 1 1 36

3 122 1 0 30

4 119 0 0 32

5 123 0 1 26

6 115 0 0 23