• Non ci sono risultati.

SAS BASE - ESERCIZI

N/A
N/A
Protected

Academic year: 2021

Condividi "SAS BASE - ESERCIZI "

Copied!
14
0
0

Testo completo

(1)

SAS BASE - ESERCIZI

LAB 1

Il dataset SAS di nome NAZIONI è tratto dal “The World Almanac and Book of Facts” del 1999.

I dati sono relativi ai 40 paesi più popolosi al mondo, su cui sono state rilevate le seguenti variabili:

ƒ Nazioni;

ƒ DV: durata media della vita;

ƒ PT: numero di persone per televisore;

ƒ PM: numero di persone per medico;

ƒ DVF: durata media della vita per le donne;

ƒ DVM: durata media della vita per gli uomini.

I valori mancanti sono indicati con *.

Costruire un programma SAS per :

1) assegnare una library di nome CORSOSAS;

2) visualizzare i dati e la descrizione del DSS nella finestra di output utilizzando rispettivamente le procedure PROC PRINT e PROC CONTENTS

3) costruire un DSS permanente senza le variabili PT e PM e visualizzarlo in formato viewtable;

4) a partire dal DSS iniziale, costruire due nuovi DSS permanenti suddividendo le nazioni con la variabile DV maggiore di 65 e minore o uguale a 65 e visualizzarli sulla finestra di output;

5) ordinare i due DSS costruiti al punto 4) secondo la variabile PM e visualizzarli sulla finestra di output;

6) costruire un DSS temporaneo che contenga solo le nazioni con PT minore di 10 ordinarlo secondo questa variabile e visualizzarlo in formato viewtable.

(2)

I dati da esaminare sono contenuti nel file di testo pulse.txt e riguardano i dati relativi a studenti sottoposti al seguente esperimento:

a. ad ogni studente vengono misurate le pulsazioni cardiache;

b. viene lanciata una moneta e lo studente effettua un minuto di corsa se è uscita testa, un minuto di riposo se è uscita croce;

c. vengono nuovamente misurate le pulsazioni.

Le variabili rilevate sono le seguenti:

- pulse1: pulsazioni misurate prima del lancio della moneta;

- pulse2: pulsazioni misurate dopo il lancio della moneta e l'eventuale corsa;

- ran: risultato del lancio della moneta (1 = TESTA/FACE , 2 = CROCE/PILE);

- smokes: abitudine al fumo (1 = non fumatore, 2 = fumatore);

- sex: sesso dell'individuo (1 = maschio, 2 = femmina);

- height: altezza in pollici;

- weight: peso in libbre;

- activity: livello attività sportiva (1 = nullo, 2 = medio, 3 = alto).

Nella prima riga del file di testo sono scritti i nomi delle variabili e quindi non va letta.

1) Assegnare una library di nome CORSOSAS;

2) creare un DSS permanente di nome PULSE contenente i dati trasformando le altezze in centimetri (1 pollice = 2.54 centimetri) e i pesi in kilogrammi (1 libbra = 0.453 kilogrammi). Visualizzare il DSS in formato viewtable e la descrizione del DSS sulla finestra di output;

3) costruire un DSS permanente di nome PULSE12 con le sole variabili pulse1, pulse2 e ran e visualizzarlo in formato viewtable;

4) a partire dal DSS PULSE costruire due nuovi DSS permanenti di nome corsa e riposo suddividendo gli individui che hanno effettuato la corsa da coloro che non la hanno effettuata e visualizzarli sulla in formato viewtable;

5) ordinare i due DSS costruiti al punto 4) secondo la variabile pulse1 e visualizzarli sulla finestra di output.

(3)

LAB 3

I dati da esaminare sono tratti dalla libreria on-line Statlib: http://lib.stat.cmu.edu/datasets/pbc e riguardano pazienti affetti da una malattia del fegato di nome cirrosi biliare primaria.

Il file cirrosi.txt contiene i dati relativi al momento della diagnosi inziale di 412 soggetti; i primi 312 pazienti sono sottoposti allo studio clinico; degli altri pazienti si hanno solo alcune rilevazioni utili per un confronto. I pazienti sottoposti allo studio (cioè i primi 312) vengono suddivisi a caso in due gruppi: al primo gruppo viene somministrato un farmaco, agli altri un placebo.

Le variabili considerate sono, nell’ordine in cui sono presenti nel file, le seguenti:

• numero di identificazione del paziente (ID)

• numero di giorni fra la registrazione e il primo evento fra morte, trapianto o momento di compilazione (NGIORNI)

• stato del paziente: 0 = vivo in cura, 1 = subito trapianto, 2 = morto (STATO)

• tipo di cura: 1 = farmaco, 2 = placebo (CURA)

• età in giorni (ETA)

• sesso: 0 = maschio, 1 = femmina (SEX)

• aumento di volume del fegato: 0 = no, 1 = si (VOLFEG)

• presenza di edema: 0 = nessun edema e nessuna terapia per l’edema, 0.5 = presenza di edema e nessuna terapia diuretica, 1 = presenza di edema e terapia diuretica (EDEMA)

• bilirubina in mg/dl (BILIRUB)

• colesterolo in mg/dl (COLEST)

• albumina in gm/dl (ALBUM)

• trigliceridi in mg/dl (TRIGLIC)

• piastrine per ml3 / 1000 (PIASTR)

Nella prima riga del file sono scritti i nomi delle variabili (e quindi non deve essere letta).

1) Creare un DSS permanente contenente i dati e visualizzarlo in formato wietable. Visualizzare la descrizione del DSS appena costruito nella finestra di output;

2) Costruire due DSS permanenti il primo con i 312 soggetti sottoposti allo studio (di nome STUDIO) e il secondo con i rimanenti soggetti (di nome ALTRI);

3) Usando il DSS STUDIO, costruire un nuovo DSS ricodificando:

- la variabile EDEMA con i livelli 0, 1 e 2 (mantenendo l’ordine)

- la variabile SEX trasformandola in variabile carattere con livelli Maschi e Femmina.

4) Usando il DSS ricodificato ordinare i dati secondo il tipo di cura e lo stato del paziente, il primo indice in ordine ascendente e il secondo indice in ordine discendente;

5) Usando il DSS ricodificato costruire due DSS temporanei per i due stati di aumento di volume del fegato (0 e 1), visualizzarli sulla finestra di output e successivamente costruire un DSS temporaneo che li concateni (cioè li scriva in sequenza).

(4)

I dati da esaminare sono in forma di Data Set Sas nel file stid98. Riguardano gli studenti che nel 1998 frequentavano il primo anno di STID; le variabili rilevate (e conservate in questo ordine nel DSS) sono:

- alt : altezza (in cm);

- peso : peso (in kg);

- mis_pied : misura scarpa;

- col_cap : colore capelli (codificato con 0 per biondi, 1 per scuri e 2 per rossi);

- col_occh : colore occhi (codificato con 0 per celesti, 1 per scuri e 2 per verdi);

- fumo : fumo (codificato con 'si' e 'no');

- att_sp : attività sportiva (codificata con 0 per poca, 1 per moderata e 2 per molta);

- sex : sesso (codificato con 'm' e 'f').

1) Assegnare una library;

2) visualizzare i dati in formato viewtable

3) costruire: - una variabile densita=peso/alt;

- una variabile occhi con livelli 'celesti', 'scuri' e 'verdi';

- una variabile capelli con livelli 'biondi', 'scuri' e 'rossi';

4) costruire i seguenti DSS permanenti visualizzarli in formato viewtable:

- maschi con i soli individui maschi;

- femmine con i soli individui femmine;

- m_fum con i soli individui maschi che fumano;

- m_bion con i soli individui maschi biondi;

- bion_cel con i soli individui biondi con gli occhi celesti;

5) costruire i seguenti DSS temporanei e visualizzarli in formato wiewtable:

- uno con le prime 7 osservazioni;

- due con le osservazioni a partire dalla 40-esima (compresa);

- tre con le osservazioni fra la 10-ma e la 20-esima (compresi);

6) a partire dal DSS m_fum, costruire un DSS permanente m_fum2 senza le variabili sesso e fumo;

7) a partire dal DSS iniziale, costruire due DSS temporanei utilizzando i seguenti due gruppi di istruzioni:

- set STID.maschi;

set STID.femmine;

- set STID.maschi STID.femmine;

LAB 3B

I dati da esaminare sono contenuti in un file di testo. Riguardano tre specie dello stesso fiore (iris) per i quali sono state rilevate (e conservate nel file fiori.txt) le seguenti variabili:

- lung_sep (lunghezza del sepalo, in millimetri);

- larg_sep (larghezza del sepalo, in millimetri);

- lung_pet (lunghezza del petalo, in millimetri);

- larg_pet (larghezza del petalo, in millimetri);

- varieta (1=setosa, 2 = versicolor, 3=virginica).

1) Assegnare una library ;

2) costruire il DSS iris contenente i dati; si tenga presente che la prima riga del file di testo contiene il nome delle variabili e non va letta. Visualizzare le informazioni sul DSS sulla finestra di output;

3) costruire: - una variabile larg_abs=larg_pet/larg_sep;

- una variabile specie con i livelli: setosa, virginica, versicolor;

4) costruire i seguenti DSS permanenti:

-setosa con i soli iris setosa;

-set_larg con i soli iris setosa con larg_sep>30;

5) costruire i seguenti DSS temporanei:

- one con le prime 17 osservazioni;

- two con le osservazioni a partire dalla 30-esima (compresa);

- three con le osservazioni fra la 12-ma e la 24-esima (estremi esclusi);

6) costruire un DSS permanente iris2 senza le variabili larg_sep e lung_sep.

(5)

LAB 4

ESERCIZO 1

Scrivere un programma che:

a) costruisca il DSS di nome UNO che contiene le variabili e i dati riportati qui a fianco b) a partire dal DSS di nome

UNO costruisca il DSS di nome DUE definendo

opportunamente le variabili in modo da ottenere il seguente risultato a fianco:

ESERCIZO 2

Si considerino i dati riportati a fianco e contenuti nel file voti.txt.

CP1 AN1 ALG1 ALG2 SD1 SD2 INF1 PROGR 26 30 30 26 29 30 26 30 23 27 24 24 27 24 23 30 30 30 30 30 30 30 30 30 25 30 30 30 30 27 30 30 28 28 30 26 30 30 30 30 21 26 28 24 29 25 27 27 25 28 30 28 25 26 26 30 A) Scrivere un programma SAS per calcolare la media pesata di ciascun studente, facendo le seguenti

operazioni in un solo passo di data:

1. Dichiarare un array di nome VOTI con le variabili CP1 AN1 ALG1 ALG2 SD1 SD2 INF1 PROGR;

2. Leggere i dati dal file usando l’array preedente;

3. Costruire un array di nome CREDITI con le variabili cred_CP1 cred_AN1 cred_ALG1 cred_ALG2 cred_SD1 cred_SD2 cred_INF1 cred_PROGR

e assegnare alle colonne rispettivamente i valori 7 8 8 4 7 7 8 8 4. Definire un nuovo array di nome PRODOTTI di dimensione 8;

5. Assegnare ad ogni colonna dell’array PRODOTTI il prodotto fra VOTI e CREDITI;

6. Sommare le righe dell’array PRODOTTI e dividere il risultato per 57 (somma dei crediti).

B) Ripetere l’esercizio nel caso in cui ci siano tre studenti che non hanno sostenuto tutti gli esami come riportato nella tabella a fianco e nel file voti2.txt effettuando le seguenti modifiche rispetto ai 6 punti dell’esercizio precedente :

- aggiungere: se il voto è missing il credito vale zero

- calcolare la somma dei crediti e poi dividere il risultato per la somma dei crediti

CP1 AN1 ALG1 ALG2 SD1 SD2 INF1 PROGR 26 30 30 26 29 30 26 30 23 27 24 24 27 24 23 30 30 30 30 30 30 30 30 30 25 30 30 30 30 27 30 30 28 28 30 26 30 30 30 30 21 26 28 24 29 25 27 27 25 28 30 28 25 26 26 30

30 26 30 27 30 30 30

24 26 24 24 26 20 30

24 26 25 24 30 30

(6)

I dati da esaminare riguardano uno studio sul grasso corporeo come indice dello stato di salute di un individuo. Le rilevazioni sono state effettuate su 241 uomini e rappresentano le stime delle percentuali di grasso corporeo determinate mediante il calcolo della densità corporea in immersione e di varie misure di circonferenze del corpo. I dati sono stati tratti dal sito http://lib.stat.cmu.edu.

Nel dettaglio, le variabili contenute nel file di testo antrop.txt sono:

• densità corporea (determinata mediante la rilevazione del peso in immersione) (DENSITA)

• età (ETA);

• peso (in libbre) (PESO);

• altezza (in pollici) (ALTEZZA)

• circonferenza del collo (centimetri) (COLLO);

• circonferenza toracica (centimetri) (TORACE);

• circonferenza addominale (centimetri) (ADDOME);

• circonferenza dei fianchi (centimetri) (FIANCHI);

• circonferenza della coscia (centimetri) (COSCIA);

• circonferenza del ginocchio (centimetri) (GINOCCH);

• circonferenza della caviglia (centimetri) (CAVIGLIA);

• circonferenza dei bicipiti (centimetri) in estensione (BICIPITI);

• circonferenza dell’avambraccio (centimetri) (AVAMBR);

• circonferenza del polso (centimetri) (POLSO).

1) Costruire un data set contenente i dati e in cui le unità di misura delle variabili ALTEZZA e PESO siano rispettivamente i cm e i kg (da pollici a cm moltiplicare per 2.54; da libbre a kg per 0.453);

2) Eseguire una analisi descrittiva delle variabili Peso, Altezza, Addome, Caviglia e Polso. Per fare questo NON MODIFICARE il DSS, ma far agire la procedura solo su queste variabili. Per ciascuna variabile :

ƒ determinare il valore di media, scarto, mediana, Q1 e Q3;

ƒ costruire un box-plot;

3) tramite tali rappresentazioni grafiche si individuino quei soggetti che, per una o più variabili, presentano valori “anomali”, intendendo con “anomali” quei valori che nel box-plot sono rappresentati con * (cioè eccedono di tre volte la distanza interquartile a partire da un quartile).

Costruire un nuovo data set permanente che non contenga i soggetti con i dati “anomali”.

(7)

LAB 6

I dati da analizzare riguardano una popolazione di 159 pesci di 7 specie diverse pescati in un lago finlandese (Laengelmavesi) vicino a Tampere. I dati da esaminare si trovano nel file di testo

pesci.txt

Le rilevazioni effettuate riguardano nell'ordine:

- il nome della specie del pesce;

- il codice della specie del pesce (da 1 a 7) la cui corrsipondenza è:

Codice Nome Latino Nome Italiano

1 Abramis brama Abramide

2 Leusiscus idus Leucisco ido 3 Leusiscus rutilus Leucisco rosso

4 Abramis bjrkna Blicca

5 Osmerus eperlanus Sperlaro

6 Esox lucius Luccio

7 Perca fluviatilis Pesce persico

- il peso (in g);

- la lunghezza1 (in cm) (o lunghezza standard) lunghezza dal naso all'inizo della coda;

- la lunghezza2 (in cm) lunghezza dal naso alla diramazione a V della coda;

- la lunghezza3 (in cm) (o lunghezza totale) lunghezza dal naso alla fine della coda;

- l'altezza% altezza massima espressa come percentuale di lunghezza3, cioè

altezza = lunghezza3 * altezza% / 100;

- la larghezza% larghezza massima espressa come percentuale di lunghezza3, cioè

larghezza = lunghezza3 * larghezza% / 100;

- il sesso (0: femmina; 1: maschio).

___/////___ _ / \ ___ | /\ \_ / / H < ) __) \ | \/_\\_________/ \__\ _

|--- L1 ---|

|--- L2 ---|

|--- L3 ---|

I valori mancanti sono indicati con il punto.

1) Costruire un DSS permanente contenente i dati tenendo conto che:

- le prime due righe contengono il titolo e non vanno lette;

- il nome delle specie è una variabile alfanumerica di lunghezza maggiore di 8 con valori che possono contenere uno spazio bianco;

- le variabili possono essere lette con input a lista;

2) Costruire due nuove variabili Altezza e Larghezza con i dati assoluti;

3) Esaminare la numerosità delle diverse specie e costruire un DSS con solo le specie che hanno almeno 20 pesci. Per queste specie effettuare una analisi descrittiva delle variabili suddividendo i dati secondo le 3 diverse specie;

4) Costruire tabelle di contingenza a due vie per le variabili ritenute significative.

(8)

Analizziamo i dati contenuti nel file di testo strike.txt. I dati riguardano le rilevazioni sugli scioperi in 18 contee inglesi tra il 1951 e il 1985. Il file è costituito da 625 osservazioni e da 7 variabili:

- country: codice della contea da 1 a 18;

- year: anno della rilevazione;

- strikes: giornate di lavoro perse nell'anno ogni 1000 dipendenti a causa di scioperi;

- unempl: tasso di disoccupazione;

- infl: tasso di inflazione annuo;

- labour: percentuale di seggi al partito laburista nel parlamento della contea;

- central: indice di centralizzazione (compreso tra 0 e 1).

1) Assegnare una library e costruire un DSS contenente i dati.

2) Calcolare con la proc means la media di tutte le variabili quantitative (escluso year).

3) Calcolare la correlazione tra tutte le variabili quantitative (escluso year) e costruire un nuovo DSS permanente contenente solo le due variabili più correlate.

4) Costruire un DSS permanente di nome anno85 con le sole osservazioni dell’anno 1985.

5) Costruire, a partire dal DSS anno85, un DSS temporaneo ottenuto eliminando tutte le osservazioni corrispondenti al valore minimo e al valore massimo della variabile strikes.

6) Eseguire la proc univariate sul DSS anno85 e costruire un DSS permanente eliminando tutte le ozservazioni corrispondenti a outliers per almeno una variabile.

7) A partire dal DSS iniziale, costruire una nuova variabile carattere per ricodificare la variabile central con i valori basso e alto (alto se >=0.50, basso se <0.50).

8) Costruire due DSS permanenti contenenti rispettivamente le sole osservazioni con basso indice di centralizzazione e quelle con alto indice di centralizzazione. Visualizzare i due DSS sulla finestra di output.

9) Costruire due nuovi DSS ordinando i DSS costruiti al punto 9) rispetto alla variabile unempl.

10) Per i due DSS costruiti al punto 9), calcolare la media e la deviazione standard della variabile infl memorizzando i risultati in due DSS permanenti.

11) Concatenare orizzontalmente, ossia “affiancare”, i due DSS costruiti al punto 11).

(9)

LAB 7

ESERCIZIO 1

Si considerino i dati del DSS stid98 considerato in precedenza.

1) Costruire tabelle e rappresentazioni grafiche che descrivano la distribuzione del colore dei capelli;

2) costruire tabelle e rappresentazioni grafiche che descrivano la distribuzione del colore dei capelli rispetto al colore degli occhi;

3) costruire una rappresentazione grafica che descriva la media del peso degli studenti suddivisa per attività sportiva e sesso;

4) costruire tre rappresentazioni grafiche che descrivano la distribuzione dell'altezza con diverse suddivisioni della scala di rappresentazione (utilizzare opportune opzioni grafiche);

ESERCIZIO 2

Si consideri il DSS dell’esercizio 7 riferito ai pesci delle tre specie più numerose.

1) Costruire un grafico che visualizzi la distribuzione congiunta delle altezze e delle lunghezze standard nelle diverse specie;

2) costruire tre boxplot relativi ai pesi delle diverse specie.

(10)

ESERCIZIO 1

Il numero di pezzi difettosi prodotti da alcune macchine di una azienda viene controllato da due operatori.

I

risultati del primo operatore sono contenuti nel DSS primo, che ha le seguenti variabili:

• Codice della macchina;

• Data;

• Numero di pezzi difettosi su 200 ispezionati.

Obs codice data difetti 1 12411 JAN27 3 2 12411 FEB13 8 3 12411 MAR22 4 4 15982 JAN29 1 5 15982 FEB03 3 6 19685 MAR02 7

I risultati del secondo operatore sono contenuti nel DSS secondo. Il secondo operatore analizza un numero variabile di pezzi ad ogni ispezione (non fissato uguale a 200). Pertanto il DSS secondo ha le seguenti variabili:

• Codice della macchina;

• Data;

• Numero di pezzi difettosi;

Numero di pezzi ispezionati.

Obs codice data difetti n_esam 1 12411 JAN12 2 110 2 13528 FEB18 6 250 3 13528 MAR13 5 100 4 14255 MAR15 5 120 5 19685 MAR07 2 55

PARTE 1

Si vuole costruire un nuovo DSS che contenga tutte le ispezioni nel seguente modo.

a) Aggiungere nel DSS primo una variabile operatore che contenga il valore 1 e aggiungere nel DSS secondo una variabile con lo stesso nome operatore che contenga il valore 2.

b) Costruire un nuovo DSS terzo, concatendo i due DSS uno dopo l’altro.

c) Visualizzare il DSS terzo e osservarlo.

d) Modificare opportunamente il DSS terzo in modo che la variabile relativa al numero di pezzi controllati non contenga valori mancanti (e quindi contenga il valore 200)

PARTE 2

a) Aggiungere al DSS una nuova variabile dif_perc (difettosita’ percentuale) definita da:

dif_perc = (difettosi / esaminati) * 100 b) Effettuare un’analisi univariata e grafica della variabile dif_perc.

c) Costruire due nuovi DSS, il primo con le rilevazioni che hanno difettosità percentuale inferiore a 3 e il secondo con le rilevazioni che hanno difettosità percentuale superiore a 3

ESERCIZIO 2

A un concorso tre giudici devono dare un giudizio a 10 quadri.

Però ogni giudice non valuta tutti i 10 quadri, ma solo alcuni di essi.

I giudizi sono raccolti nei tre DSS di nome giudice1, giudice2 e giudice3. Ogni DSS contiene le due variabili:

• Numero del quadro;

• Giudizio (espresso in punteggio da 1 a 10).

a) Si costruisca un DSS che concateni i tre DSS, in modo tale che abbia due variabili (numero quadro e giudizio) e contenga tutte le osservazioni dei tre DSS di partenza. Si osservino le differenze tra SET .... e SET … BY ....

b) Si costruisca un DSS che concateni i tre DSS, in modo tale che abbia quattro variabili (numero quadro, giudizio1, giudizio2, giudizio3) e 10 osservazioni. Ovviamente un giudizio non espresso deve essere rappresentato con un valore mancante.

c)

A partire dall’ultimo DSS costruito, aggiungere una colonna contenente la media dei tre giudizi

.

(11)

LAB 9

ESERCIZIO 1

I dati contenuti nel file ex10a.txt hanno le seguenti caratteristiche:

ƒ i valori aa e bb delle variabili numeriche var1, var2 e var3 devono essere dichiarati missing;

ƒ le variabili carattere devono essere chiamate: NOME, COMUNE_NASCITA, COMUNE_RESIDENZA;

ƒ il separatore fra le variabili è il simbolo % ;

A) Costruire un programma SAS per leggere i dati.

B) Aggiungere al DSS una nuova variabile contenente l’inziale del nome in carattere maiuscolo.

Giovanni%genova%milano%1%aa%23 Piero%imperia%genova%bb%12%34 Angelo%nice%menton%12%12%14

Mario%alessandria%napoli%10%12%66

ESERCIZIO 2

I dati contenuti nel file ex10b.txt hanno le seguenti caratteristiche:

ƒ la prima variabile è carattere e le tre variabili successive sono numeriche;

ƒ le colonne di inizio delle tre variabili numeriche sono 15, 25 e 35.

A) Costruire un programma SAS per leggere i dati.

B) Aggiungere al DSS una nuova variabile contenente i primi due caratteri della prima variabile.

AAAAA 3.382 2.089 3.556 BBBBB 4.255 2.503 3.900 CCCCC 2.366 3.011 3.008

ESERCIZIO 3

I dati da esaminare sono contenuti nel file Spesa2.TXT, riportato qui sotto. Le variabili sono le stesse dell’esercizio precedente; i valori sono delimitate dal segno –

Rossi-2L-3P-6U -2Pa-sup.doro a "Genova" - carta di credito Bianchi -3L- 4P -2U- 3Pa -negozio di "Ovada" - contante verdi - 1L- 3P- 1U- 5Pa -negozio di "Lavagna"- bancomat

gialli - 4L -4P -6U -4Pa- sup.coop a "Arenzano" - carta di credito neri - 5L -3P -3U -3Pa- negozio di "Bolzaneto"- contante

rosa - 2L -4P- 5U -3Pa- negozio di "Pieve" - contante

ESERCIZIO 4

Si consideri il file SPESADATA.TXT. Rappresenta la spesa fatta da 6 persone sui seguenti articoli:

• Latte in litri

• Pane in Kg

• Numero di uova

• Numero di pacchi di pasta

Viene poi segnalato il posto (considerare un’unica variabile contenente le informazioni sul tipo di negozio e il luogo) e la data (da codificare però come variabile carattere) di acquisto.

rossi 2L 3P 6U 2Pasup.doro a Genova 02MAG bianchi 3L 4P 2U 3Pa negozio di Ovada 05LUG verdi 1L 3P 1U 5Pa negozio di Lavagna 25AGO gialli 4L 4P 6U 4Pa sup.coop a Arenzano 14SET neri 5L 3P 3U 3Pa negozio di Bolzaneto 26OTT rosa 2L 4P 5U 3Pa negozio di Pieve 15NOV

LEGENDA:L=latte(in litri) P=pane(in kg)

U=uova Pa=pacchi di pasta

(12)

Dopo aver letto il file con input a colonna svolgere i seguenti punti.

1. In un nuovo DSS costruire una nuova variabile indicante il tipo di rivenditore in cui si è effettuato l’acquisto (“sup” oppure “negozio”), utilizzando la variabile indicante il luogo.

2. Scrivere per intero dove viene effettuato l’acquisto (cioè tutta la variabile indicante il posto) con i giusti spazi di separazione, rimuovendo i blank multipli.

3. Concatenare in un'unica variabile “resoconto” tutte le variabili indicanti gli articoli, scrivendoli in modo da lasciare uno spazio bianco tra i diversi acquisti.

4. Usando la variabile della data costruire una nuova variabile indicante il mese dell’acquisto e una indicante il giorno.

5. Riscrivere i nomi dei compratori in modo che la prima lettera sia maiuscola (usare sia substr()=’’

sia upcase)

6. Ricodificare le variabili indicanti gli articoli in modo da averle come numeriche (quindi prima estrapolare la parte “numerica” e poi trasformarla)

Suggerimento: per trasformare le variabili in numeriche usare la funzione input in questo modo:

se lat è la variabile carattere contenente la quntità di latte, allora la trasformazione in variabile numerica è data da: la=input(lat,comma2.);

7. calcolare il totale della spesa supponendo che i prezzi siano uguali in tutti i negozi:

Latte = 1.32 euro Pane = 3.42 euro Uova = 0.20 euro Pasta = 0.77 euro

8. Trasformare il totale in franchi francesi (1 euro = 6.55957 FF)

Fornire tre risultati uno approssimato per eccesso, uno da arrotondato ai centesimi di franco e un altro approssimato per difetto.

LAB 9 A

I dati da esaminare sono in forma di file di testo e sono contenuti nel file tetraidrocortisone.txt

Riguardano alcune misurazioni su pazienti sottoposti ad una terapia. Ogni record ha la forma seguente Xa1 3.1 11.70

dove il primo campo contiene:

• una lettera X (uguale per tutte le osservazioni, e quindi non interessante);

• una lettera (a, b, c) che codifica il tipo di trattamento;

• un numero progressivo assegnato al paziente (il massimo è 10).

Le altre variabili sono:

• quantità di tetraidrocortisone (THC);

• quantità di pegnanetriolo (PE).

1) Costruire un DSS contenente i dati utilizzando opportunamente l’istruzione input;

2) visualizzare la descrizione del DSS, osservando in particolare la lunghezza delle variabili;

3) rappresentare graficamente la distribuzione congiunta delle variabili THC e PE, sia per la totalità dei soggetti, sia suddividendo i soggetti rispetto al tipo di trattamento;

4) costruire i boxplot per le variabili THC e PE, suddividendo i soggetti rispetto al tipo di trattamento;

5) costruire una rappresentazione grafica che descriva la media della variabile THC suddivisa rispetto al tipo di trattamento;

6) costruire una rappresentazione grafica che descriva la media della variabile PE suddivisa rispetto al tipo di trattamento.

XLabel Tetrahydrocortisone Pregnanetriol Xa1 3.1 11.70

Xa2 3.0 1.30 Xa3 1.9 0.10 Xa4 3.8 0.04 Xa5 4.1 1.10 Xa6 1.9 0.40

... (omissis) ...

(13)

LAB 10

ESERCIZIO 1

Si considerino i dati contenuti nel file di testo temp.txt e riguardanti alcune misurazioni di carattere meteorologico effettuate in varie stazioni della Liguria. Le variabili rilevate sono:

• codice della stazione;

• giorno del mese;

• temperatura minima;

• temperatura massima;

• pressione atmosferica al livello del mare.

1) Costruire un DSS di nome temp contenente i dati.

2) Scrivere un programma (senza macro) che:

• costruisce dei DSS di nome temp1 contenente le rilevazioni del giorno 1; il DSS deve contenere una variabile con due livelli che suddivide le osservazioni con temperatura minima sotto i 5 gradi da quelle maggiori o uguali a 5;

• costruisce un DSS di nome temp1b contenente le rilevazioni del giorno 1 e per cui la temperatura minima sia sotto i 5 gradi e un DSS di nome temp1a contenenti le altre rilevazioni;

• costruisce, per il giorno 1, i boxplot relativi alla variabile pressione atmosferica rispetto al livello di temperatura minima

3) Scrivere una macro che faccia le operazioni del punto precedente su tutti i 30 giorni; quindi:

• costruisce dei DSS di nome temp1…temp30 contenenti le rilevazioni di ciascun giorno; ciascun DSS deve contenere una variabile con due livelli che suddivide le osservazioni con temperatura minima sotto i 5 gradi dai rimanenti;

• costruisce dei DSS di nome temp1b…temp30b contenenti le rilevazioni di ciascun giorno e per cui la temperatura minima sia sotto i 5 gradi e dei DSS di nome temp1a…temp30a contenenti le rimanenti rilevazioni;

• costruisce, per ogni giorno, i boxplot relativi alla variabile pressione atmosferica rispetto al livello di temperatura minima

• Modificare la macro precedente inserendo come parametri il numero del primo giorno e il numero dell’ultimo giorno.

4) Scrivere una macro che:

• costruisce dei DSS di nome temp_1…temp_13 contenenti le rilevazioni di ciascuna stazione;

• produce per ciascuna stazione un grafico che visualizzi l’andamento della temperatura massima in funzione del giorno di rilevazione;

Modificare la macro precedente inserendo come parametri il numero del primo codice e il numero dell’ultimo codice.

ESERCIZIO 2

Si considerino i dati contenuti nei file di testo viti1.txt…viti11.txt e riguardanti le misurazioni relative ad alcune caratteristiche della produzione di viti in 11 stabilimenti di una medesima multinazionale delle viti. Le variabili rilevate sono, in ciascun file:

• diametro medio delle viti controllate;

• percentuale di difettosità nella produzione;

• tipo di acciaio utilizzato (codificato da 1 a 7);

• giorno dell’anno in cui si è proceduto al campionamento di controllo di qualità (da 1 a 36);

• una variabile che indica se il diametro è stato misurato in pollici (P) ovvero in centimetri (C);

• una variabile da eliminare (non interessa).

1) Scrivere una macro che costruisca un DSS contenente i dati tenendo conto che:

• bisogna aggiungere una variabile che tenga memoria dello stabilimento di provenienza;

• bisogna uniformare i dati relativi al diametro trasformando tutte le misurazioni in centimetri;

• siano parametri della macro: il numero di DSS da considerare e il perfisso del nome dei DSS.

(14)

Generalizzare la macro fornendo come parametri:

• il nome del DSS di input

• il nome della variabile secondo cui fare la suddivisione

• il numero dei livelli della variabile secondo cui fare la suddivisione

Scrivere una macro che ordini ciascuno di questi DSS rispetto alla percentuale di difettosità.

Generalizzare la macro fornendo come parametri:

• il prefisso del nome dei DSS di input

• il numero dei DSS di input

• il nome della variabile secondo cui avere l’ordinamento

3) Costruire una macro che:

• richiami la macro del punto 2 a) per costruire un opportuno numero di DSS contenenti le rilevazioni di ciascun giorno;

• per ciascun DSS costruisca un nuovo DSS contenete il valore medio della percentuale di difettosità (utilizzare la proc means)

• concateni i DSS con i valori medi e contenga una variabile che indica il giorno di rilevazione La macro deve avere come parametri:

• il prefisso del nome dei DSS di input

• il numero dei DSS di input

• il prefisso del nome dei DSS di output della proc means

• il nome della variabile di cui calcoalre il minimo

Riferimenti

Documenti correlati

 “Estrarre dalla base di dati una tabella, StudentiTriennio, contenente i dati degli studenti della laurea

Dopo averli rappresentati nel piano cartesiano, stabilire se i seguenti insiemi risultano aperti, chiusi e compatti.. `e aperto, dunque coincide con il suo interno C = C , non

• Le operazioni di inserimento sulla testa della lista, mentre quelle di eliminazione lavorano sulla coda. • Il costo di tutte le operazioni è

La carta semilogaritmica o grafico semilogaritmico indica un grafico con un asse con scala lineare e un asse con scala. logaritmica (tipicamente in base 10). Usi dei

Come detto in precedenza, l’approssimazione delle trasformate di Fourier con- tinue con le trasformate discrete presenta dei problemi legati alle condizioni di calcolo: la funzione

Dati due segmenti : AB e CD costruire la loro somma comporta trasportare i due Dati due segmenti : AB e CD costruire la loro somma comporta trasportare i due. segmenti su una

Dobbiamo imporre che l’argomento di ln(·) sia strettamente positivo, e che i due termini sotto radice siano

[r]