NOTE INTRODUTTIVE AL SISTEMA SAS

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "NOTE INTRODUTTIVE AL SISTEMA SAS"

Transcript

1 DIPARTIMENTO DI MATEMATICA UNIVERSITÀ DI GENOVA Via Dodecaneso, GENOVA (Italy) tel fax NOTE INTRODUTTIVE AL SISTEMA SAS Fabio Rapallo - Ivano Repetto - Maria Piera Rogantin Dipartimento di Matematica - Università di Genova

2

3 INDICE A. Aspetti generali A1. Il linguaggio SAS A2. I passi di DATA A3. I passi di PROC A4. I DATA SET di tipo SAS A5. Tipi di variabili B. Come eseguire un programma SAS C. Esempi di programmi SAS C1. Primo esempio C2. Secondo esempio: le procedure PRINT e CONTENTS C3. Osservazioni per la scrittura dei programmi D. Il passo di DATA D1. Creazione di un DATA SET SAS D2. Alcuni esempi D3. DATA SET SAS permanenti E. Manipolazione dei DATA SET E1. Selezione di sottoclassi di osservazioni E2. Selezione di osservazioni consecutive E3. Selezione di variabili E4. Cambio di nome a variabili E5. Costruzione di più DATA SET SAS E6. Concatenazione di più DATA SET SAS E7. Lettura di DATA SET di "tipo" diverso F. Ancora sul passo di DATA F1. Espressioni e funzioni SAS F2. I valori mancanti F3. Somme cumulate F4. Approfondimenti sull esecuzione di un passo di DATA F5. Gli array F6. Istruzioni di controllo F7. L'istruzione INPUT F8. L'istruzione INFILE F9. L'istruzione OUTPUT F10. Scrittura su un file esterno e istruzione PUT G. Il passo di PROC G1. Alcune opzioni e istruzioni usato in un passo di PROC G2. Procedura SORT G3. Procedura PRINT G4. Procedura MEANS G5. Procedura FREQ (e procedura FORMAT) G6. Procedura UNIVARIATE G7. Altre procedure statistiche elementari G8. Alcune procedure che operano su DATA SET SAS G9. Selezione di variabili e di osservazioni in una procedura H. Istruzioni e procedure grafiche H1. Alcune istruzioni per gli output grafici H2. Procedura GCHART H3. Procedura GPLOT I. Errori e lettura del LOG 3

4 J. Approfondimenti: manipolazione di Data Set SAS J1. Overview of Methods for Combining SAS Data Sets J2. Manipolazione di Data Set SAS J2.1 Per concatenare i DSS: uso di Set J2.2 Per concatenare i DSS: uso di Set by e di Merge by J2.3 Per affiancare DSS con variabili diverse: uso di Set Set e di Merge J2.4 Per aggiornare un DSS: uso di Update e di Merge by J2.5 Per aggingere osservazioni a un DSS: la proc Append J3. Osservazioni ripetute: uso di Set by e variabili first.<..> e last.<..> K. Approfondimenti: lettura di dati grezzi K1. Input a lista con formato K2. Input con nome K3. Sospensione dell input: uso K4. Opzioni di Infile per leggere dati con delimitatori nell input a lista L. Approfondimenti: formati di lettura e scrittura dei dati L1. Istruzione Format L2. Istruzione Informat L3. Istruzione Lenght L4. Istruzione Atttrib L5. La Proc Format L5.1 Istruzione Value L5.2 Istruzione Invalue L5.3 Istruzione Picture L5.4 Alcuni esempi di cambio di formati L5.5 Funzioni di conversione da variabile carattere a numerica e viceversa L6. SAS Date, Time, and Datetime Values L7. Alcune funzioni di arrotondamento L8. Alcune funzioni sulle variabili carattere M. Approfondimenti: le Macro SAS M1. Introduzione alla programmazione con macro M2. SAS Macro Language: Reference N. Approfondimenti: come operare con matrici in SAS 4

5 A1. IL LINGUAGGIO SAS A. Aspetti generali Il SAS è un sistema software che fornisce strumenti necessari per analizzare dati. E' composto da: - un linguaggio usato per la manipolazione dei dati; - una libreria di procedure pre-confezionate per uso generale. Esiste un modulo SAS BASE più vari moduli per particolari applicazioni quali ad esempio: - statistica (STAT) - controllo qualità (QC) - ricerca operativa (OR) - serie temporali (TSA) - manipolazione matrici (IML) - grafica avanzata (GRAPH) - gestione risorse calcolatore - gestione Data Base. Il SAS consente di: - leggere dati - trasformare e manipolare di dati (mediante l'utilizzo di funzioni matematiche e statistiche, di concatenazione e di ordinamento) - aggiornare dati - stampare prospetti - generare grafici - ridurre e sintetizzare dati - effettuare analisi matematiche sui dati Ogni programma è composto da passi (STEP). Esistono 2 tipi di passi: i passi di DATA e i passi di PROC. A2. I PASSI DI DATA Si usano per creare DATA SET SAS partendo da files già esistenti. Tali files possono essere non SAS (grezzi), o già di tipo SAS. I dati in ingresso possono subire trattamenti durante il passo di DATA. dati grezzi DATA SET SAS passo di DATA 5 dati grezzi DATA SET SAS Un passo di data inizia con l'istruzione DATA seguito dal nome del Data Set Sas che si vuole costruire. A3. I PASSI DI PROC Servono per produrre tabulati, rapporti, statistiche, ecc. I dati su cui operano devono già essere in formato DATA SET SAS. Con un passo di Proc si possono creare anche altri DATA SET SAS che possono essere analizzati successivamente da altri passi di DATA o di PROC. Un passo di proc inizia con l'istruzione PROC seguito dal nome della procedura che si vuole eseguire. Un passo di programma (di data o di proc) termina con l'istruzione RUN; o con un nuovo passo di data o di proc.

6 A4. I DATA SET DI TIPO SAS Un DATASET di tipo SAS è un insieme di dati omogenei organizzati in forma rettangolare. ESEMPIO: osservazioni variabili Le colonne sono chiamate variabili; ciascuna di esse ha un nome (si consiglia di assegnare sempre nomi mnemonici). Un nome deve seguire le seguenti regole sintattiche: a) deve essere formato da 1 a 8 caratteri; b) può contenere cifre al suo interno; Un DATA SET SAS si compone di due parti distinte: - una parte descrittiva in cui vengono memorizzate tutte le informazioni necessarie affinchè il SAS possa in un qualunque momento rileggere i dati in modo totalmente automatico (es.: nomi e attributi delle variabili, "storia" di come è stato costruito,... ); - una parte in cui vengono memorizzati i dati propriamente detti. Per visualizzare le due parti, si devono usare delle PROC diverse. Osservazione: un DATA SET SAS non è un file di dati tradizionale ma è leggibile solo con il software con cui è stato costruito. Ogni file SAS ha un nome. I nomi dei file seguono le stesse regole dei nomi delle variabili. A5. TIPI DI VARIABILI Una variabile può essere di due tipi: - NUMERICA (es. età, altezza, peso) - CARATTERE (es. cognome, sesso) Una variabile è caratterizzata da una serie di attributi: - nome - lunghezza (LENGTH) - formato di ingresso (INFORMAT) - formato di uscita (FORMAT) - etichetta (LABEL) che possono essere specificati con opportune istruzioni. La lunghezza massima del nome di una variabile (salvo diversa dichiarazione) è di 8 caratteri. Le variabili assumono valori che dipendono dalla elaborazione che si sta effettuando. In particolari situazioni non esistono valori associabili ad una variabile (sia in fase di INPUT dei dati, sia a causa di operazioni su dati "invalidi"); in questo caso il SAS associa un particolare valore alla variabile, definito "valore mancante" o "valore vuoto" o "missing value". Il SAS esegue automaticamente la conversione da variabile carattere a numerica quando: - una variabile carattere è assegnata ad una variabile numerica definita precedentemente; - si esegue il confronto tra una variabile carattere e una numerica; - si eseguono operazioni aritmetiche su variabili carattere (solo nel caso in cui siano formate da cifre). Il SAS esegue automaticamente una conversione da variabile numerica a carattere quando: - una variabile numerica è assegnata ad una variabile carattere definita precedentemente; - una funzione agisce su una variabile numerica ma ha un formato carattere come argomento; - una variabile numerica è usata come operando di un operatore tipico delle variabili carattere (esempio l'operatore di concatenazione di stringhe). 6

7 B. COME ESEGUIRE UN PROGRAMMA CON IL SAS PER WINDOWS Avviando il SAS da Windows compare una schermata composta generalmente da due finestre: una di Log e l'altra di Program Editor. Un'altra finestra, quella di Output si apre quando il programma crea un output non grafico Alcune osservazioni sulla scrittura e l'esecuzione dei programmi: - il testo del programma va scritto nella finestra di Program Editor - per salvare il programma su disco: dalla finestra di Program Editor, dal menù File si seleziona: Save o Save as Con Save il programma (dopo il primo salvataggio) è salvato con il nome dell'ultimo programma richiamato (fare attenzione). Il nome di un programma salvato compare nell'intestazione della finestra di Program Editor. - per richiamare un programma salvato in precedenza in un file: dalla finestra di Program Editor, dal menù File si seleziona: Open --> Read File - per far eseguire programma occorre dalla finestra di P.E., dal menù Local selezionare: Submit (che corrisponde al tasto funzionale F8) - ad ogni esecuzione il testo del programma scompare dalla finestra del Program Editor, ma può essere richiamato selezionando dalla finestra di Program Editor, dal menù Local: Recall (corrispondente al tasto funzionale F4) con Recall si richiama l'ultimo programma eseguito (se si ripete l'operazione due volte vengono richiamati gli ultimi due programmi eseguiti, e così via) - mentre il programma viene eseguito nella finestra di Log compaiono le indicazioni di ciò che il programma sta facendo come, ad esempio, tempi di esecuzione delle procedure, eventuali errori, numero di osservazioni lette nel Data Set, ecc. - se è previsto un output non grafico questo viene scritto nella finestra di Output - avendo le finestre un'estensione limitata, non sempre tutto il loro contenuto è visibile. Per scorrere all'interno di una finestra si eseguono le solite operazioni delle applicazioni Windows - per spostarsi da una finestra all'altra si può utilizare il menù Window o il mouse o usare i tasti funzionali: - F5 per la finestra di Program Editor - F6 per la finestra di Log - F7 per la finestra di Output - i comandi di edizione di testo si trovano nel menu Edit - per rimuovere il contenuto di tutte le linee di testo da qualsiasi finestra, dal menù Edit selezionare: Clear text (corrispondente ai tasti control+e) - per conservare i risultati contenuti nella finestra di Log e di Output in un file permanente si usa il comando Save come per il salvataggio di un programma - per conoscere il contenuto dei tasti funzionali bisogna, dal menù Help selezionare: Keys con tale operazione compare una finestra Keys con le indicazioni volute - nel menù Help, selezionando SAS System si possono trovare la sintassi e le spiegazioni per le varie procedure e per l'uso dei comandi SAS 7

8 C1 PRIMO ESEMPIO C. ESEMPI DI PROGRAMMA SAS Con questo programma: - si costruisce un data set SAS di nome CLASSE leggendo i dati inseriti nel programma - si ordinano i dati secondo una variabile - si stampa il contenuto del DSS costruito - si costruiscono alcune statistiche PROGRAMMA SAS n. 1: DATA CLASSE; INPUT NOME $ A_CORSO $ - i nomi delle variabili sono separati da blank A_NASCIT ES_DATI MEDIA; - le prime due variabili sono di tipo carattere DATALINES; - i dati sono inseriti nel programma; XXX 1F si vedrà in seguito il caso con dati su file ZZZ 4R ogni linea corrisponde a una osservazione WWW TTT ; PROC SORT data=classe; - lavora sull'ultimo Data Set BY ES_DATI; - ordina le oss. rispetto alla variabile ES_DATI PROC PRINT data=classe; - stampa le variabili del Data Set con il titolo indicato TITLE 'STUDENTI ORDINATI PER NUMERO ESAMI DATI'; - determina l'esecuzione del passo di proc PROC CONTENTS data=classe; - stampa le informazioni sul Data Set con il titolo assegnato precedentemente PROC MEANS data=classe; - calcola alcune statistiche su tutte le variabili numeriche con il titolo precedente RUN; - determina l'esecuzione del passo di proc PROC MEANS data=classe; - calcola alcune statistiche sulle variabili indicate var a_nascit; dopo l istruzionevar RUN; - determina l'esecuzione del passo di proc OUTPUT SAS della procedura PRINT: STUDENTI ORDINATI PER NUMERO ESAMI DATI OBS NOME A_CORSO A_NASCITA ES_DATI MEDIA 1 TTT XXX 1F WWW ZZZ 4R

9 C2 SECONDO ESEMPIO: LE PROCEDURE PRINT E CONTENTS Con questo programma: - si costruisce un data set SAS di nome ES1 leggendo i dati inseriti nel programma - si costruiscono nuove variabili da quelle di partenza - si stampa il contenuto del DSS costruito (sia i dati che la descrizione) PROGRAMMA SAS n. 2: data es1; input sesso $ eta hinch wlib; altezza=hinch*2.54; peso=wlib*0.4536; datalines; f f f f f f f f f f f f f f f f f f f f f (non è riportato una parte dell'input) m m m m m m m m m m m m m m ; proc print data=es1; title ' '; proc contents data=es1; i due primi run non sono necessari 9

10 OUTPUT SAS: L'output della proc print è il seguente: OBS SESSO ETA HINCH WLIB ALTEZZA PESO 1 f f f f f f f f f (non è riportato una parte dell'output) 230 m m m m m m m L'output della proc contents è il seguente: CONTENTS PROCEDURE Data Set Name: WORK.ES1 Observations: 236 Member Type: DATA Variables: 6 Engine: V611 Indexes: 0 Created: 10:55 Friday, December 4, 1998 Observation Length: 48 Last Modified: 10:55 Friday, December 4, 1998 Deleted Observations: 0 Protection: Compressed: NO Data Set Type: Sorted: NO Label: -----Engine/Host Dependent Information----- Data Set Page Size: 8192 Number of Data Set Pages: 2 File Format: 607 First Data Page: 1 Max Obs per Page: 169 Obs in First Data Page: Alphabetic List of Variables and Attributes----- # Variable Type Len Pos ALTEZZA Num ETA Num HINCH Num PESO Num SESSO Char WLIB Num

11 C3. OSSERVAZIONI PER LA SCRITTURA DEI PROGRAMMI - le istruzioni terminano con il carattere " ; " - si possono usare tutte le colonne di una linea - si possono scrivere più istruzioni su una linea (separate ovviamente da ;) - si può scrivere una istruzione su più linee - si possono mettere più istruzioni "RUN" all'interno di un programma - i commenti vanno compresi fra /* e */ ( es. PROC SORT; /* ordinamento dei dati */ ) ABBREVIAZIONI PER LISTE DI VARIABILI a) X1-Xn si considerano tutte le variabili da X1 a Xn ( X1 X2 X3... Xn) b) X--A si considerano tutte le variabili da X a A X-NUMERIC-A si considerano tutte le variabili numeriche da X a A X-CHARACTER-A si considerano tutte le variabili carattere da X a A c) _NUMERIC_ si considerano tutte le variabili numeriche _CHARACTER_ si considerano tutte le variabili carattere _ALL_ si considerano tutte le variabili ESEMPIO 1: l'istruzione INPUT dell'esempio n.1 può scriversi: INPUT NOME $ A_CORSO $ VAR1-VAR3; dopo PROC PRINT si potrebbe mettere l'istruzione: VAR NOME--VAR3 ; che sarebbe equivalente a: VAR NOME A_CORSO VAR1 VAR2 VAR3; (tale istruzione indica che la PROC deve essere effettuata solo per le variabili indicate) ESEMPIO 2: data uno; input x1 x2 y x3 x5; datalines; ; proc print; var x1--x3; proc print; var x1-x3; OUTPUT SAS: Obs x1 x2 y x3 OUTPUT SAS: Obs x1 x2 x proc print; var x1--x5; OUTPUT SAS: Obs x1 x2 y x3 x proc print; var x1-x5; LOG SAS: ERROR: Variable X4 in suffix list not in data set D. IL PASSO DI DATA 11

12 D1. CREAZIONE DI UN DATA SET SAS DATI SU FILE ESTERNO: DATA nome Data Set ; INFILE '[path] nome ' ; INPUT...; con eventuale formato di lettura. altre istruzioni usate nel passo di DATA ; apre il file per la lettura descrive l'input assegnando un nome alle variabili DATI INSERITI NEL PROGRAMMA: DATA nome Data Set ; INPUT...; altre istruzioni ; DATALINES; immediatamente prima dei dati linee di dati ; indica la fine dei dati DATI DA UN ALTRO DATA SET: DATA nome del nuovo Data Set ; SET nome del Data Set da cui leggere i dati; altre istruzioni ; OSS: oltre all'istruzione SET si possono usare anche le istruzioni MERGE e PUT con risultato analogo. 12

13 D2. ALCUNI ESEMPI DATI INSERITI NEL PROGRAMMA: PROGRAMMA SAS n. 2: data es1; input sesso $ eta hinch wlib; altezza=hinch*2.54; peso=wlib*0.4536; datalines; f f f f f f f f f f f f m m m m m m m m ; DATI SU FILE ESTERNO: PROGRAMMA SAS n. 3: data es2; infile 'a:es1.txt'; input sesso $ eta hinch wlib; altezza=hinch*2.54; peso=wlib*0.4536; DATI DA UN ALTRO DATA SET: PROGRAMMA SAS n. 4: data es3; set es2; if eta < 16 then cl_eta = 'giovane'; else cl_eta='vecchio'; proc print data=es3; var eta cl_eta; 13

14 D3. DATA SET SAS PERMANENTI COME RENDERE PERMANENTE UN DATA SET SAS a) bisogna creare una "libreria" con l'istruzione: LIBNAME nome simbolico libreria ' path '; b) quando si costruisce il Data Set bisogna scrivere: DATA nome simbolico libreria.nome Data Set ; INPUT...;... si indica la directory dove scrivere i Data Set permanenti l'estensione del file costruito è SD2 I Data Set sono conservati con il nome: nome Data Set.SD2 nel path specificato dall'istruzione LIBNAME. Esempio. PROGRAMMA SAS n. 5: libname corso 'a:\corsosas'; data corso.es3; set es2; if eta < 16 then cl_eta = 'giovane'; else cl_eta='vecchio'; proc print data=corso.es3; var eta cl_eta; I Data Set permanenti sono memorizzati nella directory a:\corsosas. L'istruzione libname vale per tutti i Data Set costruiti nella sessione. Il data set costruito è memorizzata nel file a:\corsosas\es3.sd2 che ha la struttura di un Data set SAS. COME ACCEDERE AD UN DATA SET PERMANENTE DATA nome nuovo Data Set ; SET nome simbolico libreria.nome Data Set ;... data corso.nuovo; set corso.es3; 14

15 E. MANIPOLAZIONE DI DATA SET Consideriamo il seguente esempio. PROGRAMMA SAS n. 6: libname corso 'a:\corsosas'; data corso.disney; input nome $ & sesso $ eta altezza peso; length nome $ 12; datalines; pippo m paperino m minnie f clarabella f nonna papera f qui m quo m qua m emy f ely f edy f ; proc print data=corso.disney; OUTPUT SAS: OBS NOME SESSO ETA ALTEZZA PESO 1 pippo m paperino m minnie f clarabella f nonna papera f qui m quo m qua m emy f ely f edy f E1. SELEZIONE DI SOTTOCLASSI DI OSSERVAZIONI La selezione di sottoclassi di osservazioni contenute in un Data Set può avvenire con diverse forme. Presentiamo alcune di queste possibilità continuando l'esempio precedente: PROGRAMMA SAS n. 7: data maschi; il DDS costruito è temporaneo set corso.disney; nome DSS con i dati di cui si vuole selezionare una sottoclasse if sesso='m'; precisa il criterio di selezione proc print data=maschi; l'istruzione: if sesso='m'; può essere sostituita equivalentemente dalle istruzioni if sesso ^='m' then delete; if sesso ='m' then output; 15

16 OUTPUT SAS: OBS NOME SESSO ETA ALTEZZA PESO 1 pippo m paperino m qui m quo m qua m E2. SELEZIONE DI OSSERVAZIONI CONSECUTIVE Si possono usare varie opzioni dell'istruzione SET, di cui presentiamo alcune possibilità (riferite sempre all'esempio di partenza): PROGRAMMA SAS n. 8: data prime3; set corso.disney(obs=3); proc print data=prime3; data dalla3; set corso.disney(firstobs=3); proc print data=dalla3; data centrali; set corso.disney(firstobs=3 obs=5); proc print data=centrali; OUTPUT SAS: OBS NOME SESSO ETA ALTEZZA PESO 1 pippo m paperino m minnie f OBS NOME SESSO ETA ALTEZZA PESO 1 minnie f clarabella f nonna papera f qui m quo m qua m emy f ely f edy f OBS NOME SESSO ETA ALTEZZA PESO 1 minnie f clarabella f nonna papera f

17 PROGRAMMA SAS n. 8 bis data es2bis; infile 'a:es1.txt' firstobs=3; input sesso $ eta hinch wlib; proc print data=es2bis; OUTPUT SAS: OBS SESSO ETA HINCH WLIB 1 f f f f f f f f f f m m m m (è omessa una parte dell output) E3. SELEZIONE DI VARIABILI La selezione delle variabili avviene mediante l'utilizzo delle istruzioni DROP e KEEP. Queste istruzioni sono complementari e servono per specificare: - quali variabili del vecchio Data Set non si vogliono ricopiare nel nuovo (istruzione DROP). - quali variabili del vecchio Data Set si vogliono ricopiare nel nuovo (istruzione KEEP). Le istruzioni DROP e KEEP sono non eseguibili. Possono pertanto comparire in qualunque punto di un passo di Data. Esempio: PROGRAMMA SAS n. 9: data etasesso; set corso.disney; drop altezza peso; oppure keep nome eta sesso;... In tal caso il nuovo Data Set non contiene più le variabili ALTEZZA e PESO, però tali variabili possono essere usate nelle istruzioni e nel calcolo di nuove variabili (ad es. rapporto=altezza/peso). DROP e KEEP possono comparire anche come opzioni di un Data Set SAS di input, come segue: PROGRAMMA SAS n. 10: data etasesso; set corso.disney(drop = altezza peso);... In tal caso le variabili ALTEZZA e PESO non possono essere usate in alcun modo nel nuovo Data Set. 17

18 E4. CAMBIO DI NOME A VARIABILI È sufficiente usare l'istruzione RENAME come segue: PROGRAMMA SAS n. 10: data nuovo(rename=(sesso=mf)); set corso.disney; /* altre istruzioni */ E5. COSTRUZIONE DI PIÙ DATA SET Si usano le istruzioni IF e SELECT che permettono di effetuare delle scelte condizionate. Esempio. PROGRAMMA SAS n. 11: data corso.maschi corso.femmine; set corso.disney; if sesso='m' then output corso.maschi; else if sesso='f' then output corso.femmine; else put 'osservazioni sbagliate' _all_; proc print data=corso.maschi; proc print data=corso.femmine; oppure: data corso.maschi corso.femmine; set corso.disney; select(sesso); when('m') output corso.maschi; when('f') output corso.femmine; otherwise put 'osservazioni sbagliate' _all_; end; proc print data=corso.maschi; proc print data=corso.femmine; OUTPUT SAS: (in entrambi i casi) OBS NOME SESSO ETA ALTEZZA PESO 1 pippo m paperino m qui m quo m qua m OBS NOME SESSO ETA ALTEZZA PESO 1 minnie f clarabella f nonna papera f emy f ely f edy f

19 Se la variabile Sesso contenesse un valore diverso da m o f, ad esempio M, nella finestra di Log si avrebbe un messaggio come indicato nella istruzione put. PROGRAMMA SAS n. 11 bis: data errore; if nome='paperino' then sesso='m'; set corso.disney; data corso.maschi corso.femmine; set errore; if sesso='m' then output corso.maschi; else if sesso='f' then output corso.femmine; else put 'osservazioni sbagliate ' _all_; LOG SAS: osservazioni sbagliate nome=paperino sesso=m eta=34 altezza=150 peso=50 _ERROR_=0 _N_=2 E6. CONCATENAZIONE DI PIÙ DATA SET Si usa ancora una volta l'istruzione SET, come nel seguente esempio in cui i DS hanno le stesse variabili: PROGRAMMA SAS n. 12: data corso.tutti; set corso.maschi corso.femmine; proc print data=corso.tutti; OUTPUT SAS della proc print: OBS NOME SESSO ETA ALTEZZA PESO 1 pippo m paperino m qui m quo m qua m minnie f clarabella f nonna papera f emy f ely f edy f L'istruzione Set usata nel seguente modo produrrebbe un output diverso: PROGRAMMA SAS n. 13: data corso.tutti2; set corso.maschi; set corso.femmine; proc print data=corso.tutti2; OUTPUT SAS n. 14: OBS NOME SESSO ETA ALTEZZA PESO 1 minnie f clarabella f nonna papera f emy f ely f

20 Il DSS TUTTI2 ha un numero di osservazioni uguale al minimo fra le osservazioni di MASCHI e FEMMINE; inoltre in questo caso in cui le variabili dei due DSS sono le stesse il secondo DSS viene scritto sul primo. Le due istruzioni set si possono usare quando i DS hanno variabili diverse (ma rilevate sulla stessa popolazione), come si vede nel seguente esempio. In questo caso i due DS risultano "affiancati". PROGRAMMA SAS n. 14: data corso.maschi1; set corso.maschi; keep nome sesso eta; data corso.maschi2; set corso.maschi; keep nome altezza peso; data corso.maschi3; set corso.maschi1; set corso.maschi2; proc print; OUTPUT SAS: OBS NOME SESSO ETA ALTEZZA PESO 1 pippo m paperino m qui m quo m qua m Nella variabile NOME sono scritti i valori assunti nel secondo DS. Se i Data Set hanno un diverso numero di osservazioni per ciascuna variabile, viene costruito un nuovo Data Set contenente tutte le variabili dei Data Set precedenti, mettendo a missing le osservazioni mancanti. Si potrebbe ottenere un DS simile al precedente utilizzando l'istruzione merge nel seguente modo: PROGRAMMA SAS n. 15: proc sort data=corso.maschi1 out=corso.maschi1s; by nome; proc sort data=corso.maschi2 out=corso.maschi2s; by nome; data corso.maschi3s; merge corso.maschi1s corso.maschi2s; by nome; proc print data=corso.maschi1s; OUTPUT SAS: OBS NOME SESSO ETA ALTEZZA PESO 1 paperino m pippo m qua m qui m quo m ALTRO ESEMPIO: 20

21 data uno; input n $ x y; datalines; a b d ; data tre; set uno; set due; proc print; data quattro; merge uno due; by n; proc print; OUTPUT SAS: data due; input n $ x z; datalines; a b c ; Obs n x y z 1 a b c ATTENZIONE A QUESTA OSSERVAZIONE OUTPUT SAS: Obs n x y z 1 a b c d E7. LETTURA DI DATI DA DATA SET DI "TIPO" DIVERSO Consideriamo il seguente esempio: PROGRAMMA SAS n. 16: proc means data=corso.disney; legge dal Data Set corso.disney var altezza peso; opera solo sulle variabili altezza e peso output out=sommario mean=m_alt m_peso; dà alle due medie i nomi e costruisce il Data Set proc print data=sommario; OUTPUT SAS della proc print: OBS _TYPE FREQ_ M_ALT M_PESO Se si vuole costruire un Data Set con gli scarti dalle medie bisogna operare nel seguente modo. PROGRAMMA SAS n. 17: data corso.diney1; if _n_=1 then set sommario; set corso.disney; alt_c=altezza-m_alt; peso_c=peso-m_peso; drop _type freq_; proc print; In tal modo si costruisce un Data Set con le variabili precedenti più le due medie m_alt e m_peso e le due nuove che sono alt_c e peso_c. OUTPUT SAS: 21

22 0BS M_ALT M_PESO NOME SESSO ETA ALTEZZA PESO ALT_C PESO_C pippo m paperino m minnie f clarabella f nonna papera f qui m quo m qua m emy f ely f edy f Se non si mettesse l'istruzione if _n_=1 then... verrebbe costruito un Data Set con tutte le variabili e un numero di osservazioni pari a quelle di sommario (primo Ds a cui si fa il set). OUTPUT SAS: 0BS M_ALT M_PESO NOME SESSO ETA ALTEZZA PESO ALT_C PESO_C pippo m

23 F. ANCORA SUL PASSO DI DATA F1. ESPRESSIONI E FUNZIONI SAS ESPRESSIONI SAS Sono le solite: costanti, date, operatori sia su variabili carattere che numeriche, ecc. FUNZIONI SAS Le funzioni del SAS, così come in tutti gli altri linguaggi di programmazione, sono dei programmi già scritti che si richiamano con una parola chiave e ritornano un valore calcolato sugli argomenti che vengono passati alla funzione. Il formato delle funzioni può essere uno dei seguenti: NOME-FUNZIONE (arg1, arg2,..., argn ); NOME-FUNZIONE (OF var1 - varn ); NOME-FUNZIONE (OF var1 var2 var3...varn ); (il più comune è il primo tipo presentato) Gli argomenti delle funzioni possono essere: - costanti o variabili numeriche - costanti o variabili alfanumeriche - espressioni comprese quelle in cui compaiono altre funzioni Le funzioni SAS si possono distinguere nelle seguenti classi: - funzioni aritmetiche ricordiamo ABS, MIN, MAX, DIM (indica la dimensione di un'array) HBOUND, LBOUND (forniscono i limiti di un'array), ecc. - funzioni di troncamento - funzioni matematiche ricordiamo EXP, LOG, GAMMA (funzione Gamma completa), LGAMMA (log. nat. della funz. Gamma). - funzioni trigonometriche - funzioni probabilistiche valore integrale valore quantile POISSON PROBBETA BETAINV PROBBNML PROBCHI CINV PROBF FINV PROBGAM GAMINV PROBNORM PROBIT PROBT TINV (con opportuni parametri) - funzioni statistiche ricordiamo MIN (minimo), MAX (massimo), MEAN (media), N (numero di dati non missing), NMISS (numero di dati missing), RANGE (rango), STD (standard deviation), SUM (somma), VAR (varianza), USS (somma dei quadrati dei dati), CSS (somma dei quadrati dei dati centrati sulla media). - funzioni per generare numeri casuali ricordiamo NORMAL (che genera una variabile normale), RANBIN (che genera un'osservazione da una binomiale), RANEXP (che genera una osservazione da un'esponenziale di parametro 1), RAGGAMM, ecc. - funzioni per elaborazione di stringhe - funzioni per elaborare date e tempi - funzioni di sistema - funzioni speciali 23

24 DIFFERENZA TRA FUNZIONI E PROCEDURE Le funzioni producono statistiche per ogni osservazione (riga) nel Data Set SAS e producono risultati pari al numero di osservazioni. Le procedure producono statistiche per le variabili (colonne) nel Data Set SAS. PROGRAMMA SAS n. 17 bis: data temperature; input citta $ t6 t12 t18; media_temp=mean(t6,t12,t18); istruzioni equivalenti datalines; Genova Milano Napoli ; media_temp=mean(of t6 t12 t18); media_temp=mean(of t6 -t18); OUTPUT SAS proc print; Obs citta t8 t12 t18 media_temp 1 Genova Milano Napoli proc means; The MEANS Procedure Variable N Mean Std Dev Minimum Maximum ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ t t t media_temp ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ F2. VALORI MANCANTI Il valore di una variabile viene messo a missing se il campo di input è blank oppure è un punto (salvo diversa specificazione di formato). I valori mancanti si propagano nelle espressioni aritmetiche; nelle funzioni, invece, il discorso cambia. I valori mancanti nei confronti vengono messi a "meno infinito". Esempio. PROGRAMMA SAS n. 18: data es5; input dato1 dato2; somma=dato1+dato2; totale=sum(dato1,dato2); media1=(dato1+dato2)/2; media2=mean(dato1,dato2); datalines; ; proc print; 24

25 OUTPUT SAS: Obs dato1 dato2 somma totale media1 media Osservare che: ha come risultato. sum(., 78) ha come risultato 78 In generale le funzioni "ignorano" i valori missing; con SUM i missing sono considerati 0, con MEAN viene fatta la somma dei valori non missing e il risultato viene diviso per il numero dei valori non missing,.... F3. LE SOMME CUMULATE Istruzione RETAIN E' una istruzione non eseguibile e quindi può essere messa in qualunque punto del passo di DATA; svolge le due seguenti funzioni: - trattiene i valori delle variabili dalla precedente esecuzione del passo di Data - assegna dei valori iniziali alle variabili. La sintassi dell'istruzione RETAIN è la seguente: Esempio. PROGRAMMA SAS n. 19: DATA ADD; RETAIN TOTALE 0; INPUT PUNTEGGI; TOTALE=TOTALE+PUNTEGGI; DATALINES; ; PROC PRINT;RUN; PROGRAMMA SAS n. 19 bis: DATA ADD2; SET ADD; RETAIN CONTO 0; CONTO=CONTO+3; PROC PRINT;RUN; RETAIN variabili valori iniziali; OUTPUT SAS: OBS TOTALE PUNTEGGI OUTPUT SAS: OBS CONTO TOTALE PUNTEGGI

26 Istruzione somma Per effettuare somme cumulate, come nell esempio precedente per la variabile CONTO, si può usare la seguente espressione sintetica: CONTO + 3; Che corrisponde alle istruzioni Retain CONTO 0; CONTO=sum(CONTO, 3); La sua sintassi generale è: variabile + espressione; Alcuni esempi che illustrano possibili espressioni sono: bilancia + (- debito); somma2 + x*x; nx + (x ne.); Con l ultima istruzione si contano i valori non missing; infatti l espressione logica (x ne.)vale 1 se è veririficata e 0 altrimenti. Retain e valori mancanti PROGRAMMA SAS n. 20: DATA ADD; RETAIN CONTO TOTALE 0; INPUT PUNTEGGI; TOTALE=TOTALE+PUNTEGGI; CONTO=CONTO+3; DATALINES; (missing value) 6 4 ; PROC PRINT;RUN; OUTPUT SAS: OBS CONTO TOTALE PUNTEGGI Se si volesse avere TOTALE con valore anche per le osservazioni 4, 5 e 6 si dovrebbe fare: TOTALE = SUM (TOTALE, PUNTEGGI); Se si omettesse l'istruzione RETAIN le variabili TOTALE e PUNTEGGI avrebbero solo valori missing. 26

27 F4. APPROFONDIMENTI SUL PASSO DI DATA (tratto da Help on line SAS) Flow of Action When you submit a DATA step for execution, it is first compiled and then executed. The following figure shows the flow of action for a typical SAS DATA step. Flow of Action in the DATA Step 27

28 The Compilation Phase When you submit a DATA step for execution, SAS checks the syntax of the SAS statements and compiles them, that is, automatically translates the statements into machine code. In this phase, SAS identifies the type and length of each new variable, and determines whether a type conversion is necessary for each subsequent reference to a variable. During the compile phase, SAS creates the following three items: input buffer program data vector (PDV) is a logical area in memory into which SAS reads each record of raw data when SAS executes an INPUT statement. Note that this buffer is created only when the DATA step reads raw data. (When the DATA step reads a SAS data set, SAS reads the data directly into the program data vector.) is a logical area in memory where SAS builds a data set, one observation at a time. When a program executes, SAS reads data values from the input buffer or creates them by executing SAS language statements. The data values are assigned to the appropriate variables in the program data vector. From here, SAS writes the values to a SAS data set as a single observation. Along with data set variables and computed variables, the PDV contains two automatic variables, _N_ and _ERROR_. The _N_ variable counts the number of times the DATA step begins to iterate. The _ERROR_ variable signals the occurrence of an error caused by the data during execution. The value of _ERROR_ is either 0 (indicating no errors exist), or 1 (indicating that one or more errors have occurred). SAS does not write these variables to the output data set. descriptor information is information that SAS creates and maintains about each SAS data set, including data set attributes and variable attributes. It contains, for example, the name of the data set and its member type, the date and time that the data set was created, and the number, names and data types (character or numeric) of the variables. The Execution Phase By default, a simple DATA step iterates once for each observation that is being created. The flow of action in the Execution Phase of a simple DATA step is described as follows: 1. The DATA step begins with a DATA statement. Each time the DATA statement executes, a new iteration of the DATA step begins, and the _N_ automatic variable is incremented by SAS sets the newly created program variables to missing in the program data vector (PDV). 3. SAS reads a data record from a raw data file into the input buffer, or it reads an observation from a SAS data set directly into the program data vector. You can use an INPUT, MERGE, SET, MODIFY, or UPDATE statement to read a record. 4. SAS executes any subsequent programming statements for the current record. 5. At the end of the statements, an output, return, and reset occur automatically. SAS writes an observation to the SAS data set, the system automatically returns to the top of the DATA step, and the values of variables created by INPUT and assignment statements are reset to missing in the program data vector. Note that variables that you read with a SET, MERGE, MODIFY, or UPDATE statement are not reset to missing here. 6. SAS counts another iteration, reads the next record or observation, and executes the subsequent programming statements for the current observation. 7. The DATA step terminates when SAS encounters the end-of-file in a SAS data set or a raw data file. Note: The figure shows the default processing of the DATA step. You can code data-reading statements (such as INPUT or SET), or data-writing statements (such as OUTPUT), in any order in your program. 28

29 Processing a DATA Step: A Walkthrough Sample DATA Step The following statements provide an example of a DATA step that reads raw data, calculates totals, and creates a data set: data total_points (drop=teamname); [1] input TeamName $ ParticipantName $ Event1 Event2 Event3; [2] TeamTotal + (Event1 + Event2 + Event3); [3] datalines; Knights Sue Cardinals Jane Knights John Knights Lisa Knights Fran Knights Walter ; The DROP= data set option prevents the variable TeamName from being written to the output SAS data set called TOTAL_POINTS. The INPUT statement describes the data by giving a name to each variable, identifying its data type (character or numeric), and identifying its relative location in the data record. The Sum statement accumulates the scores for three events in the variable TeamTotal. Creating the Input Buffer and the Program Data Vector When DATA step statements are compiled, SAS determines whether to create an input buffer. If the input file contains raw data (as in the example above), SAS creates an input buffer to hold the data before moving the data to the program data vector (PDV). (If the input file is a SAS data set, however, SAS does not create an input buffer. SAS writes the input data directly to the PDV.) The PDV contains all the variables in the input data set, the variables created in DATA step statements, and the two variables, _N_ and _ERROR_, that are automatically generated for every DATA step. The _N_ variable represents the number of times the DATA step has iterated. The _ERROR_ variable acts like a binary switch whose value is 0 if no errors exist in the DATA step, or 1 if one or more errors exist. The following figure shows the Input Buffer and the program data vector after DATA step compilation. Input Buffer and Program Data Vector Variables that are created by the INPUT and the Sum statements (TeamName, ParticipantName, Event1, Event2, Event3, and TeamTotal) are set to missing initially. Note that in this representation, numeric variables are initialized with a period and character variables are initialized with blanks. The automatic variable _N_ is set to 1; the automatic variable _ERROR_ is set to 0. The variable TeamName is marked Drop in the PDV because of the DROP= data set option in the DATA statement. Dropped variables are not written to the SAS data set. The _N_ and _ERROR_ variables are dropped because automatic variables created by the DATA step are not written to a SAS data set. See SAS Variables for details about automatic variables. 29

30 Reading a Record SAS reads the first data line into the input buffer. The input pointer, which SAS uses to keep its place as it reads data from the input buffer, is positioned at the beginning of the buffer, ready to read the data record. The following figure shows the position of the input pointer in the input buffer before SAS reads the data. Position of the Pointer in the Input Buffer Before SAS Reads Data The INPUT statement then reads data values from the record in the input buffer and writes them to the PDV where they become variable values. The following figure shows both the position of the pointer in the input buffer, and the values in the PDV after SAS reads the first record. Values from the First Record are Read into the Program Data Vector After the INPUT statement reads a value for each variable, SAS executes the Sum statement. SAS computes a value for the variable TeamTotal and writes it to the PDV. The following figure shows the PDV with all of its values before SAS writes the observation to the data set. Program Data Vector with Computed Value of the Sum Statement Writing an Observation to the SAS Data Set When SAS executes the last statement in the DATA step, all values in the PDV, except those marked to be dropped, are written as a single observation to the data set TOTAL_POINTS. The following figure shows the first observation in the TOTAL_POINTS data set. The First Observation in Data Set TOTAL_POINTS SAS then returns to the DATA statement to begin the next iteration. SAS resets the values in the PDV in the following way: The values of variables created by the INPUT statement are set to missing. The value created by the Sum statement is automatically retained. The value of the automatic variable _N_ is incremented by 1, and the value of _ERROR_ is reset to 0. The following figure shows the current values in the PDV. 30

31 Current Values in the Program Data Vector Reading the Next Record SAS reads the next record into the input buffer. The INPUT statement reads the data values from the input buffer and writes them to the PDV. The Sum statement adds the values of Event1, Event2, and Event3 to TeamTotal. The value of 2 for variable _N_ indicates that SAS is beginning the second iteration of the DATA step. The following figure shows the input buffer, the PDV for the second record, and the SAS data set with the first two observations. Input Buffer, Program Data Vector, and First Two Observations As SAS continues to read records, the value in TeamTotal grows larger as more participant scores are added to the variable. _N_ is incremented at the beginning of each iteration of the DATA step. This process continues until SAS reaches the end of the input file. When the DATA Step Finishes Executing The DATA step stops executing after it processes the last input record. You can use PROC PRINT to print the output in the TOTAL_POINTS data set: Output from the Walkthrough DATA Step Total Team Scores 1 Participant Team Obs Name Event1 Event2 Event3 Total 1 Sue Jane John Lisa Fran Walter

32 F5. GLI ARRAY (tratto da Help on line SAS) Syntax ARRAY array-name { subscript } <$><length> <array-elements> <(initial-value-list)>; Arguments array-name names the array. {subscript} describes the number and arrangement of elements in the array by using an asterisk, a number, or a range of numbers. Subscript has one of these forms: {dimension-size(s)} indicates the number of elements in each dimension of the array. Dimension-size is a numeric representation of either the number of elements in a one-dimensional array or the number of elements in each dimension of a multidimensional array. $ indicates that the elements in the array are character element. length specifies the length of elements in the array that have not been previously assigned a length. array-elements names the elements that make up the array. Array-elements must be either all numeric or all character, and they can be listed in any order. The elements can be variables lists variable names. (initial-value-list) gives initial values for the corresponding elements in the array. The values for elements can be numbers or character strings. You must enclose all character strings in quotation marks. To specify one or more initial values directly, use the following format: (initial-value(s)) To specify an iteration factor and nested sublists for the initial values, use the following format: <constant-iter-value*> <(>constant value constant-sublist<)> Examples Example 1: Defining Arrays array rain {5} janr febr marr aprr mayr; array days{7} d1-d7; array month{*} jan feb jul oct nov; array x{*} _NUMERIC_; array qbx{10}; array meal{3}; Example 2: Assigning Initial Numeric Values array test{4} t1 t2 t3 t4 ( ); array test{4} t1-t4 ( *70); array test{4} _TEMPORARY_ ( ); Example 3: Defining Initial Character Values array test2{*} a1 a2 a3 ('a','b','c'); 32

33 Example 5: Using Iterative DO-Loop Processing In this example, the statements process each element of the array, using the value of variable I as the subscript on the array references for each iteration of the DO loop. If an array element has a value of 99, the IF-THEN statement changes that value to 100. array days{7} d1-d7; do i=1 to 7; if days{i}=99 then days{i}=100; end; Example 6: Referencing Many Arrays in One Statement You can refer to more than one array in a single SAS statement. In this example, you create two arrays, DAYS and HOURS. The statements inside the DO loop substitute the current value of variable I to reference each array element in both arrays. array days{7} d1-d7; array hours{7} h1-h7; do i=1 to 7; if days{i}=99 then days{i}=100; hours{i}=days{i}*24; end; Example 8: Using the Asterisk References as a Variable List array cost{10} cost1-cost10; totcost=sum(of cost {*}); array days{7} d1-d7; input days {*}; array hours{7} h1-h7; put hours {*}; ATTENZIONE: la struttura di array non viene conservata nel Data Set ma è utilizzabile solo nel passo di Data nel quale l array è costruito. F6. ISTRUZIONI DI CONTROLLO 1) IF espressione THEN istruzione ; (espressione=1 se vera, espressione=0 se falsa) ELSE istruzione ; - se devono essere eseguite più istruzioni: IF espressione THEN DO; serie di istruzioni ; END; ELSE DO; serie istruzioni; END; - l'istruzione IF espressione ; è equivalente all'espressione IF ( espressione ) THEN DELETE; 33

34 ESEMPIO. PROGRAMMA SAS n 21: data corso.maschi corso.femmine; set corso.disney; if sesso='m' then output corso.maschi; else if sesso='f' then output corso.femmine; else put 'osservazioni sbagliate ' _all_; 2) SELECT (variabile ) ; espressione che valuta un singolo valore WHEN (espressione ) istruzione ; OTHERWISE istruzione ; END; ESEMPIO. PROGRAMMA SAS n.21 bis: data corso.maschi corso.femmine; set corso.disney; select(sesso); when('m') output corso.maschi; when('f') output corso.femmine; otherwise put 'osservazioni sbagliate' _all_; end; Attenzione: SELECT si può usare solo per valori esatti, altrimenti usare IF ESEMPIO. PROGRAMMA SAS n.21 ter: data piccoli grandi; set corso.disney; if altezza <150 then output piccoli; else output grandi; proc print data=piccoli; proc print data=grandi; data piccoli grandi; set corso.disney; select(altezza); when(<150) output piccoli; otherwise output grandi; end; /*guardare il log: non funziona!!! Con when ci vuole un valore esatto*/ 3) DO variabile indice = val. iniziale [TO val. finale [BY incremento ] [WHILE (espressione )] [UNTIL(espressione )] ; istruzioni ; END; dove: - la variabile indice può anche essere di tipo carattere; - val.iniziale e val.finale possono essere sostituiti da una serie di valori separati da "," attenzione: nel Data Set viene scritto solo il valore che le variabili (create o modificate nelle istruzioni che compaiono "dentro il DO") hanno alla fine dell'esecuzione dell'istruzione DO; se si vuole conservare il valore delle variabili a ogni passo del DO è necessario scrivere "dentro il DO" l'istruzione OUTPUT; 34

35 ESEMPIO. PROGRAMMA SAS n. 22: data es4; do i=-1 to 1 by.1; x=probnorm(i); output; end; proc print; OUTPUT SAS: OBS I X ) DO WHILE (espressione ) 5) DO UNTIL (espressione ) per le istruzioni DO WHILE e DO UNTIL valgono le stesse considerazioni fatte per l'istruzione DO a proposito dell'istruzione OUTPUT 6) GOTO etichetta ; le etichette si dichiarano come ET:... 7) LINK etichetta ; 35

36 ESEMPI DI USO DEL CICLO DO COSTRUZIONE DATA SET ORIGINALE data uno; input x y a$; datalines; 5 7 n 3 2 a 4 7 a 2 1 n 5 5 n ; data due; set uno; do i=5; z=x*i; end; proc print; Obs x y a i z n a a n n 5 25 data tre; set uno; do i=5,7; z=x*i; end; proc print; Obs x y a i z n a a n n 7 35 data quattro; set uno; do i=5,7; z=x*i; output; end; proc print; Obs x y a i z n n a a a a n n n n 7 35 data cinque; set uno; do i=y; z=x*i; output; end; proc print; Obs x y a i z n a a n n

37 data sei; set uno; do i=y, x; z=x*i; output; end; proc print; Obs x y a i z n n a a a a n n n n 5 25 data sette; set uno; do i=y, x; z=x*i; end; proc print; Obs x y a i z n a a n n 5 25 data otto; set uno; do i=1 to 7 by 2; z=x*i; end; proc print; Obs x y a i z n a a n n 9 35 data nove; set uno; do i=1 to 7 by 2; z=x*i; output; end; proc print; Obs x y a i z n n n n a a a a a a a a n n n n n n n n

38 data dieci; set uno; do i='r','s','t'; z=trim(a) i; output; end; proc print; Obs x y a i z n r nr n s ns n t nt a r ar a s as a t at a r ar a s as a t at n r nr n s ns n t nt n r nr n s ns n t nt data undici; set uno; n=0; do until(n>5); n+1; output; end; proc print; data dodici; n=0; do until (n>5); n+1; output; end; proc print; Obs n Obs x y a n n n n n n n a a a a a a a a a a a a n n n n n n n n n n n n 6 data tredici; n=0; do while (n<=5); n+1; output; end; proc print; Obs n

39 F7. L' ISTRUZIONE INPUT L'istruzione INPUT si leggono dati grezzi (non Data Set SAS) su file, residenti su disco, ecc. Non ci sono limiti al numero di istruzioni INPUT che possono comparire in un passo di Data. Ciascuna istruzione INPUT legge: - da un file indirizzato da una istruzione INFILE che deve precedere la istruzione INPUT - da programma se non compare alcuna istruzione INFILE. In tal caso per segnalare al SAS l'inizio dei dati, deve comparire una istruzione DATALINES (o CARDS) come ultima istruzione del passo di Data ed immediatamente prima dell'inizio dei dati. In SAS sono possibili vari tipi di input, di cui i principali sono: 1) a colonne 2) a lista 3) a formato E' possibile nella stessa istruzione combinare i tre tipi di input. INPUT A COLONNE: La sintassi della istruzione e': INPUT var_1 [$] col_partenza_1 [ - col_fine_1 ] [. decimali_1 ]... [ var_n [$] col_partenza_n [ - col_fine_n ] [. decimali_n ] ]; Valgono le seguenti regole di scrittura: - il $ è usato per indicare una variabile carattere - i campi contenenti i dati possono essere letti in qualsiasi ordine - campi o parti di campi possono essere riletti Esempio: INPUT NOME $ 1-8 INIZIALE $ 1 ; - le variabili carattere possono essere al massimo lunghe 200 caratteri (da precisare con l'istruzione LENGHT) e possono avere spazi come caratteri propri del campo (ad es. DE LUCA). Alcune considerazioni sull'input a colonna: - i valori mancanti vanno codificati con un punto (all'interno del campo) o con degli spazi; - i valori carattere, prima di essere assegnati alle variabili, sono allineati a sinistra. Ad esempio, avendo l'istruzione INPUT SESSO $ 1-3 allora: M (il valore della variabile compare in prima colonna) M (il valore della variabile compare in seconda colonna) M (il valore della variabile compare in terza colonna) sono letti allo stesso modo. - i valori numerici possono comparire ovunque nel campo; possono essere specificati il segno, le cifre decimali o l'esponente. Esempio: con l'istruzione INPUT X 1-6; si può leggere uno dei seguenti numeri 23 (il segno indica uno spazio bianco) E in un campo numerico non sono permessi spazi bianchi (esempio: - 23 ) Esempio di input a colonna: INPUT PESO ETA NOME $ 1-8 SESSO $ 11 ALTEZZA INIZ_NOM $ 1; 39

40 INPUT A LISTA: La sintassi della istruzione è la seguente: INPUT variabile_1 [$] [&]...[ [variabile_n [$] [&] ] ; Valgono le seguenti regole di scrittura: - il $ è usato per indicare una variabile carattere; - ogni campo deve essere specificato in ordine di registrazione dei dati d'ingresso; - i campi devono essere separati da uno o più spazi o da altro carattere specificato con l ozione DELIMITER= dell istruzione INFILE (vedi approfondimenti successivi); - le variabili carattere possono essere al massimo lunghe 8 caratteri (a meno che non usi l'istruzione LENGHT); - se vi sono spazi bianchi come caratteri propri del campo (ad es. DE LUCA) deve essere messo nella dichiarazione il simbolo &. In tal caso il campo successivo deve essere separato da almeno due spazi. Considerazioni sull'input a lista: - il SAS ricerca nella riga il primo carattere diverso da blank e da quel punto in poi, fino al successivo blank (o successivi due, se compare il simbolo &), il campo letto rappresenta il valore della variabile; - le variabili da leggere debbono comparire nella istruzione INPUT nello stesso ordine in cui appaiono nei dati; - i valori mancanti vanno tutti codificati con un punto; - l'istruzione INPUT termina quando è stato assegnato un valore a tutte le variabili. Se i dati presenti in una riga non sono sufficienti, verrà letto il record successivo. ESEMPI FILE DI INPUT: Country Car MPG Weight Drive Horse Displa Cyl. Accel. Ratio power cement U.S. Buick Estate Wagon U.S. Ford Country Squire Wagon U.S. Chevy Malibu Wagon U.S. Chrysler LeBaron Wagon U.S. Chevette Japan Toyota Corona Japan Datsun U.S. Dodge Omni Germany Audi Sweden Volvo 240 GL Sweden Saab 99 GLE France Peugeot 694 SL U.S. Buick Century Special U.S. Mercury Zephyr U.S. Dodge Aspen U.S. AMC Concord D/L U.S. Chevy Caprice Classic U.S. Ford LTD U.S. Mercury Grand Marquis U.S. Dodge St Regis U.S. Ford Mustang U.S. Ford Mustang Ghia Japan Mazda GLC Japan Dodge Colt U.S. AMC Spirit Germany VW Scirocco Japan Honda Accord LX U.S. Buick Skylark U.S. Chevy Citation U.S. Olds Omega U.S. Pontiac Phoenix U.S. Plymouth Horizon Japan Datsun Italy Fiat Strada Germany VW Dasher Japan Datsun Germany BMW 320i Germany VW Rabbit

41 PROGRAMMA SAS n. 23: option pagesize=60 nodate; libname corso 'a:\corsosas'; data corso.cars; infile 'a:\acp.txt' firstobs=3; length TIPO $ 25; input NAZIONE $ TIPO $ & CONSUMO PESO DRIVE_R POTENZA CILINDRA NUM_C RIPRESA; proc print round; var tipo NAZIONE CONSUMO PESO DRIVE_R POTENZA CILINDRA NUM_C RIPRESA; OUTPUT SAS (parziale): OBS TIPO NAZIONE CONSUMO PESO DR_R POTEN CILIN NUM_C RIPRESA 1 Buick Estate Wagon U.S Ford Country Squire Wagon U.S Chevy Malibu Wagon U.S Chrysler LeBaron Wagon U.S Chevette U.S Toyota Corona Japan Datsun 510 Japan Dodge Omni U.S Audi 5000 Germany Volvo 240 GL Sweden Saab 99 GLE Sweden Peugeot 694 SL France Buick Century Special U.S Mercury Zephyr U.S Dodge Aspen U.S AMC Concord D/L U.S Chevy Caprice Classic U.S Ford LTD U.S Mercury Grand Marquis U.S Dodge St Regis U.S (non è riportata una parte dell'output) 41

42 INPUT A FORMATO: La sintassi dell'istruzione è la seguente: INPUT puntatore_1 variabile_1 formato_1... [puntatore_n variabile_n formato_n ] ; dove: - puntatore può essere uno dei seguenti: +n il cursore si sposta di n colonne / il cursore va alla prima colonna del record successivo # n il cursore si posiziona alla prima colonna del record n il cursore si posiziona alla colonna 'carattere ' il cursore si posiziona alla prima colonna diversa da blank dopo il carattere indica che i dati di un record si riferiscono a più osservazioni - variabile è il nome valido di una o più variabili SAS - formato può essere uno dei seguenti (sono elencati i più comuni): w. formato per leggere un campo numerico lungo w cifre; w.d formato per leggere un campo numerico lungo w cifre di cui d decimali; $w. formato per leggere un campo alfanumerico lungo w caratteri; $CHARw. formato per leggere un campo alfanumerico lungo w caratteri contenente blank; Ew. formato esadecimale. Con l'input a formato i valori mancanti vanno codificati con un punto o con degli spazi. Si possono considerare variabili numeriche con 0 al posto di blank. Si possono leggere anche "date" (in notazione inglese, italiana,...). Esempio PROGRAMMA SAS n. 24: data es1; input sesso $ eta :3.1 hinch altezza=hinch*2.54; peso=wlib*0.4536; datalines; f f f f f f f f f f f f f f f f f f f f f f f f ; Esempio: INPUT NOME $ SESSO $ ETA ALTEZZA PESO 5.1; E' possibile raggruppare i dati che vanno letti con il medesimo formato e raggruppare il formato come nel seguente esempio: INPUT GEN 3. FEB 3. MAR 3.; può essere indifferentemente scritto come: INPUT (GEN FEB MAR) ( ); INPUT (GEN FEB MAR) (3.); 42

43 COMBINAZIONE DEI DIVERSI TIPI DI INPUT: Si consideri il seguente esempio: DATA CLASSE; INPUT NOME 11 SESSO $ 1. ETA PESO 5.1 ; DATALINES; GIANNI M il segno indica uno spazio bianco MARCO M /* altri dati */ ; RUN; la variabile NOME è letta a lista, la variabile SESSO a formato, la variabile ETA a colonna, la variabile ALTEZZA a lista, la variabile PESO a formato. ISTRUZIONI MULTIPLE DI INPUT: Ogni volta che viene eseguita un'istruzione INPUT viene letto un record; se i dati relativi a una osservazione si trovano su più record bisogna mettere più istruzioni INPUT. Esempio: DATA CLASSE; INPUT NOME $ 1-8 SESSO $ 11; INPUT ETA 3-4; INPUT ALTEZZA 1-4 PESO 6-10; DATALINES; GIANNI M MARCO M /* altri dati */ ; RUN; F8. L'ISTRUZIONE INFILE Questa istruzione identifica un file in formato testo da cui si vogliono leggere i dati tramite l'istruzione input. La sintassi è: infile nomefile opzioni; La principali opzioni sono: firstobs = n. primo record da leggere obs = n. ultimo record da leggere Esempio: data pippo; infile 'a:pluto.txt' firstobs=3 obs=10; input x1-x5; Vengono letti i record dal terzo al decimo. 43

44 F9. L'ISTRUZIONE OUTPUT Quando una istruzione di OUTPUT è presente in un passo di Data, il SAS aggiunge osservazioni al Data Set solo quando viene eseguita l'istruzione OUTPUT. In sostanza questa istruzione inibisce la scrittura implicita operata dal SAS al termine del passo di Data. La sintassi dell'istruzione è la seguente: OUTPUT [nome di uno o più Data Set SAS ] ; Quando il SAS incontra una o più istruzioni di OUTPUT: - copia l'osservazione o le osservazioni appena lette sul (o sui) Data Set(s) specificati. - prosegue l'esecuzione del passo di DATA con la istruzione seguente l'istruzione OUTPUT. L'istruzione OUTPUT è necessaria quando: - si devono creare osservazioni multiple con i dati di una singola linea dei dati di ingresso; - si devono creare Data Set SAS multipli da un singolo Data Set di ingresso; - si deve creare una sola osservazione combinando dati da linee di ingresso multiple. Vediamo due esempi (riferiti al DATA SET DISNEY costruito in precedenza): PROGRAMMA SAS n. 25: data corso.maschi corso.femmine; set corso.disney; if sesso='m' then output corso.maschi; else if sesso='f' then output corso.femmine; else put 'osservazioni sbagliate' _all_; proc print data= corso.maschi; proc print data= corso.femmine; data corso.maschi; set corso.disney; if sesso='m' then output; F10. SCRITTURA SU UN FILE ESTERNO E ISTRUZIONE PUT Per scrivere dati in formato testo su disco e sufficiente usare le seguenti istruzioni: DATA _NULL_; non costruisce nessun Data Set SET nome Data Set SAS; lettura dei dati in ingresso (si può usare anche INPUT) FILE '[path] nome '; apre il file di uscita PUT [specifiche]; scrittura sul file L'istruzione PUT è l'equivalente dell'istruzione INPUT per la scrittura e specifica cosa e come scrivere ciascuna linea. La forma generale dell'istruzione è: PUT [specifiche ]; dove le specifiche indicano lo stile da usare; esso può essere: - a lista - a colonna - a formato - a stringa - guidato (a noi interessano solo i primi tre casi) Analogamente all'istruzione INPUT, i vari modi di scrittura possono venire usati in una stessa istruzione PUT. Se non viene definito un file esterno, l'istruzione PUT stampa i dati nella finestra di Log. In uno stesso passo di Data possono essere creati più files su dischi contenenti i risultati dell'analisi effettuata. Ciascuno di questi Data Set deve essere "puntato" da una istruzione FILE, la cui sintassi nella forma generale è quella scritta sopra. 44

45 G. PASSO DI PROC La forma generale della chiamata di procedura è: PROC nome procedura [DATA = nome Data Set SAS ]; G1. ALCUNE ISTRUZIONI USATE IN UN PASSO DI PROC BY [DESCENDING] variabili [NOTSORTED]; con tale istruzione i dati vengono processati per gruppi eventualmente in ordine discendente o in ordine di apparizione. OSS: i dati devono essere già ordinati altrimenti occorre usare l'opzione NOTSORTED. OUTPUT [OUT = nome Data Set SAS ] [parola chiave =nome ] ; serve per creare un Data Set con i risultati di una procedura. TITLE ['testo ']; definisce il testo da stampare all'inizio di ogni pagina di output. FOOTNOTE ['testo ']; definisce il testo da stampare in fondo ad ogni pagina di output. FORMAT variabili formato; si usa per associare ad una variabile un "formato" che definisce come i valori di quella variabile devono essere presentati in uscita. LABEL variabile = 'etichetta '; si usa per associare una etichetta ad una variabile, al fine di rendere maggiormente leggibili i risultati prodotti dalle diverse procedure di uscita. TITLE e FOOTNOTE rimangono attivi anche in successivi passi di PROC fino a quando non vengono ridefiniti o annullati. SELEZIONE DI VARIABILI E DI OSSERVAZIONI SULLE QUALI FAR AGIRE UNA PROCEDURA VAR variabili; indica su quali variabili deve operare la procedura. WHERE espressione; permette di selezionare osservazioni dal Data Set su cui opera la procedura. Esempio PROGRAMMA SAS N. 25 bis: proc print data=a.cars; var nazione tipo peso; where nazione='germany'; Osservare che nella colonna Obs rimane il numero dell osservazione del DSS OUTPUT SAS Obs NAZIONE TIPO PESO 9 Germany Audi Germany VW Scirocco Germany VW Dasher Germany BMW 320i Germany VW Rabbit

46 G2. LA PROCEDURA SORT Questa procedura esegue l'ordinamento di valori numerici o carattere (secondo il codice ASCII). La sintassi è la seguente: PROC SORT [opzioni] ; BY [DESCENDING] variabile [DESCENDING] variabile...; Le principali opzioni sono le seguenti: - DATA = nome Data Set SAS specifica il nome del Data Set da ordinare. Se omesso, il sistema SAS assume l'ultimo creato. - OUT = nome Data Set SAS il nome del Data Set di uscita; se non specificato il Data Set ordinato si sovrappone a quello originale (se non ci sono errori). L'istruzione BY deve sempre essere specificata. L'opzione DESCENDING indica che la variabile deve essere ordinata in ordine decrescente. Quando ci sono più variabili specificate con BY l'ordinamento viene fatto a partire dalla prima. Esempio: PROGRAMMA SAS n. 26: proc sort data= corso.disney out=dis; by sesso eta; proc print; OUTPUT SAS della proc print: OBS NOME SESSO ETA ALTEZZA PESO 1 emy f ely f edy f clarabella f minnie f nonna papera f qui m quo m qua m pippo m paperino m

47 G3. LA PROCEDURA PRINT Questa procedura visualizza tutte o alcune variabili di un Data Set SAS. Alcune caratteristiche della procedura sono le seguenti: - viene eseguita in modo automatico la formattazione delle informazioni da stampare entro le dimensioni della pagina. - le variabili sono stampate su colonne che sono identificate dal nome stesso della variabile o dalla etichetta ad essa associata; salvo indicazione contraria dell'utente, viene inoltre stampata una colonna identificata con OBS contenente un numero progressivo con cui vengono identificate le osservazioni. - le osservazioni sono stampate, quando possibile, una per riga. La sintassi della procedura la seguente: Le principali opzioni sono: PROC PRINT [opzioni ]; - DATA = nome DataSet SAS specifica il nome del Data Set da stampare. Se omesso, il sistema SAS assume l'ultimo creato. - NOOBS elimina dall'output la colonna con il numero progressivo delle osservazioni - ROUND arrotonda i dati alla seconda cifra decimale Le principali istruzioni della procedura PRINT sono le seguenti: - VAR lista variabili ; indica quali variabili devono essere stampate ed in quale ordine. Se omessa, vengono stampate tutte le variabili nell'ordine in cui sono state memorizzate nel Data Set SAS. - BY lista variabili ; per avere una stampa separata su osservazioni raggruppate secondo le variabili definite da BY (attenzione i dati devono essere già ordinati). 47

48 Esempio: PROGRAMMA SAS n. 27: data corso.dis_eta; set corso.disney; e='giovane'; if eta>10 then e='vecchio'; proc sort data=corso.dis_eta out=eta1; by e sesso; proc print; by e sesso; OUTPUT SAS: E=giovane SESSO=f OBS NOME ETA ALTEZZA PESO 1 emy ely edy E=giovane SESSO=m OBS NOME ETA ALTEZZA PESO 4 qui quo qua E=vecchio SESSO=f OBS NOME ETA ALTEZZA PESO 7 minnie clarabella nonna papera E=vecchio SESSO=m OBS NOME ETA ALTEZZA PESO 10 pippo paperino

49 - SUM lista variabili ; indica che devono essere stampati i totali delle variabili elencate. - SUMBY variabile ; va usata solo nel caso sia presente una istruzione BY ed una SUM con più variabili; la variabile specificata deve comparire nella istruzione BY. Ogni volta che tale variabile cambia valore, vengono stampati i totali delle variabili che sono specificate nella istruzione SUM. Esempio: PROGRAMMA SAS n. 28: proc sort data= corso.disney out=dis; by sesso; proc print data=dis; by sesso; sum eta altezza peso; sumby sesso; OUTPUT SAS: SESSO=f OBS NOME ETA ALTEZZA PESO 1 minnie clarabella nonna papera emy ely edy SESSO SESSO=m OBS NOME ETA ALTEZZA PESO 7 pippo paperino qui quo qua SESSO === ======= ====

50 G4. LA PROCEDURA MEANS La procedura serve per produrre statistiche relative a tutte le osservazioni di un Data Set SAS. La sintassi è la seguente: PROC MEANS [opzioni ] ; Alcune opzioni sono: - DATA = nome Data Set SAS specifica il Data Set su cui vengono calcolate le statistiche. Se omesso, si considera l'ultimo creato. - NOPRINT sopprime la stampa dei risultati nella finestra di output - MAXDEC = n indica il numero di cifre decimali desiderate. - VARDEF = DF N... specifica il denominatore della formula della varianza. Il default è DF=(numero dati - 1). Esempio: PROGRAMMA SAS n. 29: proc means data= corso.disney; var altezza peso; proc means data= corso.disney maxdec=2; var altezza peso; OUTPUT SAS: Variable N Mean Std Dev Minimum Maximum ALTEZZA PESO Variable N Mean Std Dev Minimum Maximum ALTEZZA PESO PROGRAMMA SAS n. 30: proc means data= corso.disney; var altezza peso; output out=sommario mean=m_alt m_peso; proc print; OUTPUT SAS (della proc print): OBS _TYPE FREQ_ M_ALT M_PESO

51 Può essere richiesto il calcolo delle seguenti statistiche (che vanno specificate come opzioni se si vogliono diverse da quelle di default che sono indicate nella prima colonna): N numero di osservazioni esclusi i missing MEAN media aritmetica MIN minimo MAX massimo STD deviazione standard NMISS numero di valori a missing NOBS numero totale di osservazioni SUM sommatoria RANGE massimo-minimo VAR varianza STDERR errore standard CSS somma dei quadrati corretta USS somma dei quadrati non corretta CV coefficiente di variazione T t di Student Alcune istruzioni che possono essere usate con PROC MEANS: - BY lista variabili ; (i dati devono per essere precedentemente sortati con PROC SORT). - CLASS lista variabili ; - FREQ variabile ; nel calcolo delle statistiche ciascuna osservazione è considerata con una frequenza pari a n, dove n è il valore della variabile FREQ. Se il valore della variabile FREQ è minore di 1, l'osservazione non è usata nei calcoli. Se il valore non è intero ne viene considerata la parte intera. - OUTPUT OUT = Data Set SAS parole chiavi = nomi...; richiede l'uscita delle statistiche in un nuovo Data Set. Le parole chiavi specificano le statistiche che si vogliono nel nuovo Data Set e il nome delle variabili che contengono le statistiche. Le parole chiavi ammesse sono quelle elencate sopra. - VAR lista variabili ; indica su quali variabili devono essere effettuate le statistiche. PROGRAMMA SAS n. 31: proc sort data= corso.disney out= dis; by sesso; proc means data=dis maxdec=2; var altezza peso; output out=sommario mean=m_alt m_peso; by sesso; proc print; OUTPUT SAS: SESSO=f Variable N Mean Std Dev Minimum Maximum ALTEZZA PESO SESSO=m Variable N Mean Std Dev Minimum Maximum ALTEZZA PESO OBS SESSO _TYPE FREQ_ M_ALT M_PESO 1 f m

52 G5. LA PROCEDURA FREQ Conteggia le frequenze dei valori e produce tavole mono- o n-dimensionali con frequenze, frequenze cumulate, percentuali, percentuali cumulate. La sintassi è la seguete: PROC FREQ [opzioni ]; Le opzioni che si possono usare sono: - DATA = nome Data Set SAS specifica il Data Set su cui vengono calcolate le statistiche. Se omesso, si considera l'ultimo creato. - ORDER=FREQ DATA INTERNAL FORMATTED specifica l'ordine in cui i livelli della variabile devono essere riportati. (se FREQ, i livelli sono ordinati con i valori delle frequenze in ordine decrescente, se DATA secondo l'ordine in cui essi compaiono nei dati di input, se INTERNAL secondo il valore interno - è il default, se FORMATTED, secondo il valore esterno formattato). - PAGE viene stampata una tabella per pagina Alcune istruzioni usate con FREQ: - BY variabili ; può essere usato per ottenere analisi separate per i gruppi definiti. - TABLES richieste / opzioni ; (attenzione richieste e opzioni vanno separate da / ) specifica su quali variabili costruire la tabella di frequenza e le sue dimensioni. Le richieste sono composte da una o più variabili unite da un asterisco. esempio TABLES ETA SESSO ; costruisce 2 tabelle monodimensionali TABLES ETA * SESSO ; costruisce 1 tabella bidimensionale Se TABLES è omesso, vengono costruite tabelle monodimensionali per tutte le variabili. Abbreviazioni: TABLES A*(B C); equivalente a TABLES A*B A*C; Opzioni di TABLES: TABLES (A B)*(C D); equivalente a TABLES A*C A*D B*C B*D; TABLES (A B C)*D; equivalente a TABLES A*D B*D C*D; TABLES (A--C); equivalente a TABLES A B C; TABLES (A--C)*D; equivalente a TABLES A*D B*D C*D; TABLES A--C*D; ambiguo e non si può usare - MISSING interpreta i missing come una classe valida ai fini dell'analisi. - OUT = nome Data Set SAS scrive l'ultima tabella più a destra indicata nelle richieste. - CHISQ richiede un test chi-quadro - NOFREQ sopprime la stampa delle frequenze - NOPERCENT sopprime la stampa delle percentuali - NOROW sopprime le percentuali di riga - NOCOL sopprime le percentuali di colonna - NOCUM sopprime la stampa delle cumulative, frequenze e percentuali - NOPRINT sopprime la stampa delle tabelle 52

53 PROGRAMMA SAS n. 32: proc freq data= corso.es3; tables altezza; OUTPUT SAS: Cumulative Cumulative ALTEZZA Frequency Percent Frequency Percent (non è riportata una parte dell'output) È possibile conservare in un DSS i valori assunti dalla variabile specificata (ordinati), le corripondenti frequenze assolute e relative tramite l'opzione out=nome DSS del comando Tables. PROGRAMMA SAS n. 33: proc freq data= corso.es3; tables altezza / out=freq_alt; proc print; OUTPUT SAS della PROC PRINT: OBS ALTEZZA COUNT PERCENT (non è riportata una parte dell'output) Per conservare anche le frequenze cumulate (assolute o relative) si procede nel seguente modo: PROGRAMMA SAS n. 34: data freq_al2; set freq_alt; fc_ass+count; fc_perc+percent; proc print; 53

54 OUTPUT SAS: OBS ALTEZZA COUNT PERCENT FC_ASS FC_PERC (non è riportata una parte dell'output) La PROC FREQ è soprattutto utilizzata per costruire tabelle di contingenza a due o più vie (attenzione: questo ha senso per variabili qualitative o variabili quantitative che assumono un numero "piccolo" di valori). PROGRAMMA SAS n. 35: proc freq data=corso.dis_eta; tables e*sesso; OUTPUT SAS: TABLE OF E BY SESSO E SESSO Frequency Percent Row Pct Col Pct f m Total giovane vecchio Total

55 DIVISIONE IN CLASSI DI UNA VARIABILE QUANTITATIVA ATTRAVERSO LA PROCEDURA FORMAT Attenzione: dal punto di vista statistico la suddivisione in classi di una variabile quantitativa è spesso un'operazione ARBITRARIA che può falsare i risultati. PROGRAMMA SAS n. 36: proc format ; value c_eta low - 16 = 'giovani' = 'medi' 18 - high = 'vecchi'; value c_alt low = 'bassi' = 'medi' high = 'alti'; value c_peso low - 40 = 'magri' = 'medi' 60 - high = 'grassi'; Se si volessero gli intervalli chiusi a sinistra si dovrebbe scrivere: value c_peso low -< 40 = 'magri' 40 -< 60 = 'medi' 60 -< high = 'grassi'; PROCEDURA FREQ: proc freq data=corso.es3; format peso c_peso. eta c_eta. altezza c_alt.; tables eta*(peso altezza) / norow nocol nofreq; OUTPUT SAS: TABLE OF ETA BY PESO ETA PESO Percent magri medi grassi Total giovani medi vecchi Total TABLE OF ETA BY ALTEZZA ETA ALTEZZA Percent bassi medi alti Total giovani medi vecchi Total

56 G6. LA PROCEDURA UNIVARIATE La procedura produce statistiche descrittive per le variabili numeriche, quali valori estremi della variabile, quantili, tabelle di frequenza, grafica box plot e stem and leaf. La sintassi è la seguente: PROC UNIVARIATE [opzioni ]; Alcune opzioni sono: - DATA = nome Data Set SAS - NOPRINT sopprime tutte le stampe dell'output. Può essere usato quando si vuole creare un nuovo Data Set. - PLOT produce uno stem-and-leaf plot, un box plot e un grafico della funzione di ripartizione empirica sovrapposto a quello della funzione di ripartizione della Normale - FREQ crea una tabella di frequenza con i valori della variabile, le relative frequenze, percentuali, e percentuali cumulate - NORMAL effettua un test per verificare se i dati provengono da una distribuzione Normale - PCTLDEF = valore specifica con quale formula calcolare il quantile. - VARDEF = DF WEIGHT N WDF specifica il divisore da usare nel calcolo della varianza (DF indica che devono essere usati i gradi di libertà, N-1; WEIGHT indica che deve essere usata la somma dei pesi; N indica che si usa il numero delle osservazioni; WDF indica che si usa la somma dei pesi meno 1). Il default è DF. specifica le unità da usare per arrotondare i valori delle variabili - per il calcolo di percentili addizionali a quelli di default elencati sotto: - PCTLNAME = nomi dei percentili specifica i nomi dei percentili - PCTLPTS = valori dei percentili specifica quali percentili sono da calcolare - PCTLPRE = prefissi delle variabili specifica i prefissi da usare nel DS di output per le variabili contenenti i nuovi percentili Per ciascuna variabile la procedura stampa: nome variabile, etichetta, n osservazioni, somma pesata e somma di pesi delle osservazioni, media, somma, standard deviation, varianza, Skewness, Kurtosis, USS, CSS, errore standard della media, tests di ipotesi sulla media = 0, numero di osservazioni diverse da 0, massimo, minimo, quartili (Q1, mediana, Q3), distanza interquartile (Q3-Q1), rango, moda, percentili ( ), valori missing (simbolo, n, percentuale rispetto al totale delle osservazioni),.... Alcune istruzioni usate con la procedura UNIVARIATE sono: - VAR variabili ; le statistiche sono calcolate per le variabili specificate - BY variabili ; usato per ottenere analisi separate sulle osservazioni - FREQ variabile ; ciascuna osservazione nel Data Set, che viene analizzata, è assunta rappresentare n osservazioni, dove n è il valore della variabile specificata nell'istruzione FREQ - ID lista variabili ; le variabili specificate sostituiscono la colonna identificata con OBS - WEIGHT variabile ; quando è specificata, la PROC UNIVARIATE usa il valore della variabile specificata dopo WEIGHT per calcolare la media pesata e la varianza pesata - OUTPUT OUT = Data Set SAS parole chiavi = nomi...; richiede l'uscita delle statistiche in un nuovo Data Set. Le parole chiavi specificano le statistiche che si vogliono nel nuovo Data Set e il nome delle variabili che contengono le statistiche 56

57 Le parole chiavi ammesse sono: N NMISS NOBS MEAN SUM STD VAR SKEWNESS KURTOSIS SUMWGT MAX MIN RANGE Q3 MEDIAN Q1 QRANGE P1 P5 P10 P90 P95 P99 MODE SIGNRANK NORMAL (con i significati già indicati) PROGRAMMA SAS n. 37: proc univariate data=corso.es3 plot; var altezza; OUTPUT SAS: The UNIVARIATE Procedure Variable: ALTEZZA Moments N 256 Sum Weights 256 Mean Sum Observations Std Deviation Variance Skewness Kurtosis Uncorrected SS Corrected SS Coeff Variation Std Error Mean Location Basic Statistical Measures Variability Mean Std Deviation Median Variance Mode Range Interquartile Range Tests for Location: Mu0=0 Test -Statistic p Value Student's t t Pr > t <.0001 Sign M 128 Pr >= M <.0001 Signed Rank S Pr >= S <.0001 Quantiles (Definition 5) Quantile Estimate 100% Max % % % % Q % Median % Q % % % % Min Extreme Observations Lowest Highest----- Value Obs Value Obs

58 Stem Leaf # Boxplot *--+--* Multiply Stem.Leaf by 10**+1 Normal Probability Plot (non è riportata una parte di output) G7. ALTRE PROCEDURE STATISTICHE ELEMENTARI SUMMARY calcola statistiche descrittive sulle variabili numeriche del Data Set SAS. E' simile alla PROC MEANS. Di default non produce output. TABULATE costruisce tabelle di statistiche descrittive. CORR calcola i coefficienti di correlazione fra le variabili. G8. ALCUNE PROCEDURE CHE OPERANO SUI DATA SET SAS APPEND serve per aggiungere informazioni in un Data Set SAS COMPARE confronta i valori delle variabili in due Data Set SAS CONTENTS scrive descrizioni dei contenuti di uno o più Data Set SAS COPY produce copie di una intera (o parti di) una libreria SAS DATASETS serve per mettere un Data Set in una libreria TRANSPOSE crea un nuovo Data Set SAS invertendo osservazioni con variabili 58

59 H. ISTRUZIONI E PROCEDURE GRAFICHE H1. INTRODUZIONE Gli esempi relativi al modulo SAS/GRAPH utilizzano i dati relativi a studenti dei Corsi di laurea in Matematica, Informatica e Biologia dell Università del Piemonte Orientale che hanno frequentato il corso di Modelli Matematici e Statistici nell anno accademico 1998/1999. Di seguito sono riportati il questionario e la codifica delle variabili qualitative. N. SESSO (M,F) 1 ALTEZZA PESO CORSO LAUREA NUMERO SCARPA COLORE OCCHI COLORE CAPELLI ATT. DIPLOMA SPORTIVA Superiore CORSO LAUREA M= matematica B = biologia I = informatica COLORE OCCHI 1 = scuri 2 = verdi 3 = azzurri COL. CAPELLI 1 = scuri 2 = castani 3 = biondi ATT. SPORTIVA 1 = nulla 2 = media 3 = alta DIPLOMA : 1 = liceo scientif. 2 = liceo classico 3 = ist. tecnico 4 = ist. magistrale 5 = altro H2. LA PROCEDURA GCHART La procedura GCHART è una procedura usata per produrre: istogrammi (bar chart) - verticali o orizzontali, istogrammi tridimensionali (block chart), areogrammi circolari (pie chart) o stellari (star chart). Occorre fornire alcune informazioni di base: - tipo di rappresentazione grafica desiderata; - variabile/i oggetto dell'analisi; - significato dell'altezza di ogni barra (blocco), o dell'area di un settore dell'areogramma; - indicazioni relative al criterio secondo il quale i valori della/e variabile/i di analisi dovranno essere raggruppati prima della loro rappresentazione grafica. La sintassi della procedura la seguente: PROC GCHART [opzioni ]; BY variabili ; istruzioni per specificare il tipo di rappresentazione: VBAR variabili / [opzioni ] ; per istogrammi verticali HBAR variabili / [opzioni ] ; per istogrammi orizzontali BLOCK variabili / [opzioni ] ; per istogrammi tridimensionali PIE variabili / [opzioni ] ; per areogrammi circolari STAR variabili / [opzioni ] ; per rappresentazioni polari Le opzioni della dichiarazione PROC GCHART sono: - DATA = nome Data Set SAS - ANNOTATE = nome Data Set SAS specifica il data set da usare per le annotazioni; questo data set deve essere costruito in modo particolare - GOUT = nome Catalogo SAS serve per produrre output grafici permanenti 59

60 PROGRAMMA SAS n. 38: libname corso 'a:\corsosas'; proc gchart data=corso.mms; hbar claurea; vbar claurea; block claurea; OUTPUT SAS 60

61 Principali opzioni per le istruzioni VBAR e HBAR. - RAXIS = valori AXISn - MAXIS =valori AXISn specificano la descrizione degli assi (rispettivamente delle frequenze e della variabile); l'istruzione AXISn deve essere precedentemente definita PROGRAMMA SAS n. 39: goption vsize=6 cm hsize=12 cm ftext=swiss htext=1; axis1 label=(h=2) length=5 cm; axis2 label=(h=1.5) length=3 cm; proc gchart data=corso.mms; vbar claurea / maxis=axis1 raxis=axis2; OUTPUT SAS: DISCRETE Specifica che la variabile numerica oggetto di analisi assume valori discreti. Se l'opzione non è presente, la procedura suppone che la variabile assuma valori continui e, in assenza dell'opzione MIDPOINTS=, vengono scelti i baricentri delle classi rappresentate da barre o settori. PROGRAMMA SAS n. 40: proc gchart data=corso.mms; vbar scarpa; vbar scarpa / discrete; OUTPUT SAS: 61

62 GROUP = variabile produce grafici affiancati, ciascuno dei quali rappresenta le osservazioni che hanno un dato valore della variabile PROGRAMMA SAS n. 41: proc gchart data=corso.mms; vbar sesso / group = sport discrete; block sesso / group = sport discrete; OUTPUT SAS: SUBGROUP = variabile suddivide ciascuna barra o blocco in tante parti quanti sono i valori diversi assunti dalla variabile indicata PROGRAMMA SAS n. 42: pattern1 c=black v=x3; pattern2 c=black v=r3; proc gchart data=corso.mms; vbar sport / subgroup=sesso discrete; OUTPUT SAS: 62

63 PATTERNID = SUBGROUP GROUP MIDPOINT BY specifica di cambiare "disegno" ogni volta che cambiano valore le variabili definite con le opzioni SUBGROUP, GROUP o MIDPOINT o con l'istruzione BY. Per definire personalmente i "disegni" si usano le istruzioni PATTERN1... PATTERNm PROGRAMMA SAS n. 43: pattern1 c=black v=x5; pattern2 c=black v=s; proc gchart data=corso.mms; vbar sesso / group=occhi discrete; vbar sesso / group=occhi discrete patternid=group; goption reset=(all); OUTPUT SAS: Le seguenti due opzioni si usano quando è definita l'opzione GROUP e indicano rispettivamente lo spazio da lasciare fra le barre dei gruppi e la descrizione dell'asse dei gruppi - GSPACE = n - GAXIS = AXISn 63

64 MIDPOINTS = valori definisce l'insieme dei punti di mezzo che saranno associati a ciascuna barra o settore della rappresentazione grafica; detti valori, numerici o alfanumerici, potranno essere elencati secondi le forme seguenti: 1) una lista di valori numerici, esempio: ; 2) una forma ripetitiva del tipo: 5 TO 30 BY 5 che genera i seguenti baricentri con passo 5: ; 3) una forma ripetitiva del tipo: 10 TO 1 BY -1 che genera i seguenti baricentri con passo -1: ; 4) una lista di stringhe racchiuse tra apici del tipo: 'Gennaio' 'Febbraio' 'Marzo' ecc... PROGRAMMA SAS n. 44: proc gchart data=corso.mms; vbar altezza / midpoints=150 to 190 by 20; vbar altezza / midpoints=150 to 190 by 10; PROGRAMMA SAS n. 45: data part; input datalines; ; proc gchart data=part; hbar p / midpoints= ; hbar p / midpoints = ; 64

65 - TYPE = parola chiave specifica a cosa deve essere proporzionale la dimensione di ciascuna barra o settore della rappresentazione grafica; in particolare, parola chiave può essere: - FREQ la frequenza con cui un valore è stato incontrato - PERCENT la percentuale di osservazioni che assumono un dato valore - CFREQ o CPERCENT rispettivamente, la frequenza o la percentuale cumulata SUM ciascuna barra rappresenta la somma dei valori della variabile specificata nella opzione SUMVAR= MEAN il valore medio dei valori della variabile specificata nella opzione SUMVAR= SUMVAR = variabile rappresenta il nome di una variabile i cui valori saranno elaborati in funzione dell'opzione TYPE=. Esempi di uso di SUMVAR e TYPE: PROGRAMMA SAS n. 46: proc gchart data=corso.mms; vbar scarpa / discrete type=mean sumvar=altezza; vbar scarpa / discrete type=mean sumvar=altezza group=sesso; OUTPUT SAS: 65

66 LEVELS = n nel caso che la variabile da rappresentare negli istogrammi assuma valori continui, mediante questa opzione è possibile specificare che il numero delle barre dell'istogramma dovrà essere n PROGRAMMA SAS n. 47: proc gchart data=corso.mms; vbar altezza / levels=7; REF = lista specifica una lista di linee di riferimento da disegnare sull'asse delle frequenze SPACE = n specifica lo spazio fra le barre WIDTH = n specifica l'ampiezza delle barre PROGRAMMA SAS n. 48: proc gchart data=corso.mms; vbar diploma / discrete ref= space=0 width=5; OUTPUT SAS: 66

67 Ulteriori opzioni per VBAR e HBAR: CTEXT = colore - COUTLINE = colore specificano il colore rispettivamente dei testi e dei contorni. MISSING specifica che i valori mancanti devono essere considerati valori validi a cui associare barre o settori. CAXIS = colore specifica il colore degli assi G100 è usata quando è presente l'opzione GROUP e forza le barre al 100 % in ciascun gruppo LEGEND = LEGENDn specifica la legenda da associare a ciascun grafico (nel caso in cui sia prevista, ad esempio se è specificata l'opzione SUBGROUP); l'istruzione LEGENDn deve essere precedentemente definita NOLEGEND indica di omettere la legenda usata per ciascun sottogruppo ASCENDING DESCENDING indicano di stampa le barre in ordine crescente (risp. decrescente) rispetto alle frequenze FRAME CFRAME = colore la prima specifica di bordare l'area in cui è compreso il grafico; se non è presente l'opzione CFRAME il colore del bordo è lo stesso di quello degli assi NOZEROS specifica che ogni barra con valore zero sia soppressa NOAXIS sopprime la stampa degli assi MINOR = n specifica il numero di tacche piccole da stampare fra le tacche grandi sull'asse delle frequenze Ulteriori opzioni per HBAR: NOSTATS specifica che nessuna statistica venga stampata in un istogramma a barre orizzontali FREQ e CFREQ indicano che siano stampate a lato del grafico le frequenze corrispondenti a ciascuna barra (con CFREQ le frequenze cumulate) PERCENT e CPERCENT indica che siano stampate le percentuali per ciascuna barra (con CPERCENT le percentuali cumulate) SUM e MEAN indicano che siano stampati rispettivamente il numero totale di osservazioni per ciascuna barra e la media delle osservazioni rappresentate da ciascuna barra NOSYMBOL indica di omettere la legenda dei simboli usati per ciascun sottogruppo 67

68 H3. LA PROCEDURA GPLOT La procedura è in grado di produrre diagrammi cartesiani, cioè di rappresentare nel piano l'andamento di una variabile al variare di un'altra. La sintassi è la seguente: PROC GPLOT [opzioni ] ; Le opzioni della procedura sono: - DATA = nome Data Set SAS - ANNOTATE = nome Data Set SAS - GOUT = nome Catalogo SAS usati come nella procedura GCHART - UNIFORM specifica che la scala sugli assi sia uguale quando è presente l'istruzione BY (per poter confrontare grafici dei diversi livelli della variabile indicata con BY) Le principali istruzioni della procedura sono: - BY variabile ; con il solito significato - PLOT richieste / opzioni ; - PLOT2 richieste / opzioni ; dove richieste : 1) lista di: var_vert * var_oriz 2) lista di: var_vert * var_oriz = n 3) lista di: var_vert * var_oriz = variabile specifica le variabili (verticali e orizzontali) da visualizzare sul grafico (1), usando l'n-esimo simbolo (eventualmente specificato con l'istruzione SYMBOLn ) (2), o usando la variabile i cui valori sono plottati per ciascun punto (3). PROGRAMMA SAS n. 49: proc gplot data=corso.mms; plot altezza*peso=1; OUTPUT SAS: Si possono richiedere più grafici contemporaneamente (uno per pagina salvo opzione OVERLAY indicata sotto). L'istruzione PLOT2 genera un secondo asse verticale sulla destra dei grafici prodotti con l'istruzione PLOT. Ha la stessa sintassi della procedura PLOT. 68

69 Le principali opzioni dell'istruzione PLOT sono: Opzioni generali: ANNOTATE = nome Data Set SAS AREAS = n specifica quali aree sopra o sotto le linee disegnate devono essere riempite; le aree sono numerate dal basso in alto (l'area fra l'asse orizzontale e il grafico più "basso" è l'area 1, l' area fra tale grafico e quello immediatamente più "alto" è l'area 2 e così via); i "disegni" dei ricoprimenti possono essere personalizzati con le istruzioni PATTERN1... PATTERNn. LEGEND = LEGENDn - NOLEGEND la prima opzione specifica la legenda da associare a ciascun grafico (nel caso in cui sia prevista); l'istruzione LEGENDn deve essere precedentemente definita; la seconda opzione indica di ometterla OVERLAY per ottenere grafici sovrapposti SKIPMISS crea una interruzione nella linea che unisce i punti quando vi sono dei valori mancanti Per linee di riferimento: AUTOHREF - AUTOVREF disegna automaticamente linee di riferimento in corrispondenza delle tacche maggiori HREF = valori - VREF = valori specifica che una linea orizzontale (risp.verticale) sia disegnata sul grafico all'altezza dei valori indicati CHREF = colore - CVREF = colore - LHREF = n - LVREF = n specifica i colori e i caratteri per le linee GRID produce una "griglia" Per definire gli assi: NOAXIS sopprime la stama degli assi, delle etichette e dei valori CAXIS = colore - CTEXT = colore specificano il colore rispettivamente della linea degli assi, dei testi sugli assi FRAME - CFRAME = colore la prima specifica di bordare l'area in cui è compreso il grafico; se non è presente l'opzione CFRAME il colore del bordo è lo stesso di quello degli assi HAXIS = valori AXISn - VAXIS = valori AXISn specifica le tacche dell'asse verticale (risp. orizzontale); se si usa AXISn l'istruzione corrispondente deve essere presente Esempio nel caso in cui si usano i valori: PLOT y*x / VAXIS=10 TO 100 BY 5; PLOT y*x / VAXIS= ; HMINOR = n - VMINOR = n specifica il numero di tacche piccole da disegnare fra le tacche grandi HZERO VZERO richiede che le tacche sull'asse verticale (risp. orizzontale) inizino dall'origine VREVERSE specifica che l'ordine dei valori sull'asse verticale sia invertito 69

70 H4. ALCUNE ISTRUZIONI PER GLI OUTPUT GRAFICI Le seguenti istruzioni permettono di personalizzare l'output grafico. L'istruzione: GOPTION opzioni ; permette di impostare il default dell'output grafico. Deve essere posizionata prima delle procedure grafiche e rimane attiva fino a una dichiarazione successiva Alcune opzioni sono: - per i testi: CTEXT = colore FTEXT = font HTEXT = n per i testi scritti (con le istruzioni successive si possono modificare alcuni specifici testi) - per i titoli: CTITLE = colore FTITLE = font HTITLE = n per i titoli (con le istruzioni successive si possono modificare alcuni specifici titoli) Colori validi: B blue C cyan W white A gray grey R red P pink K black N brown G green Y yellow M magenta O orange Le tabelle dei font si trovano alle pagine del manuale SAS GRAPH vol.1. - per le dimensioni dell'output grafico: VSIZE = n [IN CM CELL PCT] HSIZE = n [IN CM CELL PCT] - per il tipo di device grafico: GDEVICE = nome ad esempio il nome è: winprtg se la stampante è a toni di grigio winprtc se la stampante è a colori - per annullare istruzioni grafiche precedentemente assegnate RESET = ALL (istruzione, istruzione,...) è utile usare questa istruzione all'inizio di ogni programma. Esempio: goption device=winprtg vsize=15 cm hsize=18 cm ftext=swiss htext=1; 70

71 Le seguenti istruzioni possono essere posizionate sia fuori che dentro le procedure grafiche. Le seguenti due istruzioni operano come già osservato per gli output non grafici. TITLEn [opzioni] 'testo ' ; FOOTNOTEn [opzioni] 'testo ' ; Alcune opzioni specifiche per gli output grafici sono: - per il colore C = colore - per l'altezza H = n - per il tipo di carattere F = font - per la posizione D = (coordinate) La seguente istruzione serve per precisare il "disegno" con cui fare gli istogrammi (linee oblique a destra, a sinistra, a croce, vuoto, pieno) quando l'istogramma deve essere suddiviso per sottoclassi. Alcune opzioni sono: - per il colore C = colore PATTERNn opzioni ; - per il tipo di disegno V = valore TABELLA DEI PATTERN: 71

72 La seguente istruzione serve per precisare i caratteri con cui stampare i grafici e il modo con cui unire i punti. Alcune opzioni sono: - per il colore C = colore - per l'altezza H = n SYMBOLn opzioni ; - per il tipo di carattere F = font - per l'ampiezza W = n - per il carattere da plottare in corrispondenza dei punti del grafico V = valore - per il tipo di tratteggio delle linee con cui vanno uniti i punti L = n - per indicare se e come vanno interpolati i punti I = NONE JOIN HILO... 72

73 La seguente istruzione serve per precisare come visualizzare gli assi. Alcune opzioni sono: - per il colore C = colore AXISn opzioni ; - per la descrizione degli assi LABEL = NONE (C = colore H = n[in CM CELL PCT] F = font...) - per i valori delle tacche VALUE = NONE (C = colore H = n[in CM CELL PCT] F = font...) - per il tipo di linea (tratteggio) degli assi STYLE = n - per l'ampiezza in pixel della linea degli assi WIDTH = n - per la lunghezza della linea degli assi LENGTH = n [IN CM CELL PCT] - per definire le coordinate dell'origine ORIGIN = coordinate - per per definire i valori delle tacche ORDRE = lista - per le tacche principali MAJOR = NONE (C = colore H = n[in CM CELL PCT] N = n W = n...) - per le tacche piccole MINOR = NONE (C = colore H = n[in CM CELL PCT] N = n W = n...) La seguente istruzione serve per precisare l'aspetto delle legende che compaiono nei grafici. Alcune opzioni sono: LEGENDn opzioni ; - per la descrizione degli assi LABEL = NONE (C = colore H = n[in CM CELL PCT] F = font...) - per i valori delle tacche VALUE = NONE (C = colore H = n[in CM CELL PCT] F = font...) 73

74 H5. La procedura BOXPLOT: Programma SAS n. 50: proc sort data=corso.mms out=mms ;by sesso; proc boxplot data=mms; plot altezza*sesso/boxstyle = schematicid; proc sort data=corso.mms out=mms ;by sport; proc boxplot data=mms; plot altezza*sport/boxstyle = schematicid; quit; OUTPT SAS: 74

75 Un esempio completo di uso della procedura GPLOT: PROGRAMMA SAS n. 51: libname corso 'a:\mms'; goption reset=all; goption device=winprtg hsize=18 cm vsize=25 cm ftext=swiss htext=1; goption reset=(symbol,axis,title); symbol1 c=blue f=swissb v=-; symbol2 c=green f=swissb symbol3 c=red v=dot; symbol4 c=pink f=swissb v=x; symbol5 c=yellow f=swissb v=#; symbol6 c=cyan f=swissb v=+; proc gplot data=corso.ocp2; plot PRIN2*PRIN1=NAZIONE/ href=0 vref=0 frame ; title h=1.5 'Carta delle osservazioni'; 75

76 data ANNOTA; set corso.matp; x=col1; y=col2; xsys='2'; ysys='2'; text=_name_; size=1; label y= 'secondo asse'; label x= 'primo asse'; keep X Y TEXT SIZE XSYS YSYS; goption reset=(symbol,axis); symbol1 v=none; axis1 order=-1 to 1 by 0.2 length=15 cm; proc gplot data=annota; plot Y*X=1/href=0 vref=0 annotate=annota frame haxis=axis1 vaxis=axis1; title h=1.5 'Carta delle variabili'; OUTPUT SAS: 76

77 I. ERRORI E LETTURA DEL LOG (tratto da SASOnlineDOC) Error Processing and Debugging Definitions SAS performs error processing during both the compilation and the execution phases of SAS processing. You can debug SAS programs by understanding processing messages in the SAS log and then fixing your code. You can use the DATA Step Debugger to detect logic errors in a DATA step during execution. SAS recognizes five types of errors. This type of occurs when... and is detected at... error... Syntax programming statements do not conform to compile time the rules of the SAS language Semantic the language element is correct, but the compile time element may not be valid for a particular usage execution-time SAS attempts to execute a program and execution time execution fails Data data values are invalid execution time macro-related you use the macro facility incorrectly macro compile time or execution time, DATA or PROC step compile time or execution time Types of Errors Syntax Errors Syntax errors occur when program statements do not conform to the rules of the SAS language. Examples of syntax errors include misspelling a SAS keyword using unmatched quotation marks forgetting a semicolon specifying an invalid statement option specifying an invalid data set option. When SAS encounters a syntax error, it first attempts to correct the error by attempting to interpret what you meant, then continues processing your program based on its assumptions. If SAS cannot correct the error, it prints an error message to the log. In the following example, the DATA statement is misspelled, and SAS prints a warning message to the log. Because SAS could interpret the misspelled word, the program runs and produces output. date temp; x=1; proc print data=temp; 77

78 SAS Log: Syntax Error (misspelled key word) 1 date temp; WARNING : Assuming the symbol DATA was misspelled as date. 2 x=1; 3 NOTE: The data set WORK.TEMP has 1 observations and 1 variables. NOTE: DATA statement used: real time 0.17 seconds cpu time 0.04 seconds 4 5 proc print data=temp; 6 NOTE: PROCEDURE PRINT used: real time 0.14 seconds cpu time 0.03 seconds Some errors are explained fully by the message that SAS prints in the log; other error messages are not as easy to interpret because SAS is not always able to detect exactly where the error occurred. For example, when you fail to end a SAS statement with a semicolon, SAS does not always detect the error at the point where it occurs because SAS statements are free-format (they can begin and end anywhere). In the following example, the semicolon at the end of the DATA statement is missing. SAS prints the word ERROR in the log, identifies the possible location of the error, prints an explanation of the error, and stops processing the DATA step. data temp x=1; proc print data=temp; SAS Log: Syntax Error (missing semicolon) 1 data temp 2 x=1; - 76 ERROR : Syntax error, statement will be ignored. 3 NOTE: The SAS System stopped processing this step because of errors. NOTE: DATA statement used: real time 0.11 seconds cpu time 0.02 seconds 4 5 proc print data=temp; ERROR: File WORK.TEMP.DATA does not exist. 6 NOTE: The SAS System stopped processing this step because of errors. NOTE: PROCEDURE PRINT used: real time 0.06 seconds cpu time 0.01 seconds Whether subsequent steps are executed depends on which method of running SAS you use, as well as on your operating environment. 78

79 Semantic Errors Semantic errors occur when the form of the elements in a SAS statement is correct, but the elements are not valid for that usage. Semantic errors are detected at compile time and can cause SAS to enter syntax check mode. Examples of semantic errors include specifying the wrong number of arguments for a function using a numeric variable name where only a character variable is valid using illegal references to an array. In the following example, SAS detects an illegal reference to the array ALL. data _null_; array all{*} x1-x5; all=3; datalines; ; SAS Log: First Example of a Semantic Error cpu time 0.02 seconds 1 data _null_; 2 array all{*} x1-x5; ERROR: Illegal reference to the array all. 3 all=3; 4 datalines; NOTE: The SAS System stopped processing this step because of errors. NOTE: DATA statement used: real time 2.28 seconds cpu time 0.06 seconds 10 ; 11 The following is another example of a semantic error. In this DATA step, the libref SOMELIB has not been previously assigned in a LIBNAME statement. data test; set somelib.old; SAS Log:Second Example of a Semantic Error cpu time 0.00 seconds 1 data test; ERROR: Libname SOMELIB is not assigned. 2 set somelib.old; 3 NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set WORK.TEST may be incomplete. When this step was stopped there were 0 observations and 0 variables. NOTE: DATA statement used: real time 0.17 seconds 79

80 Execution-Time Errors Definition Execution-time errors occur when SAS executes a program that contains data values. Most executiontime errors produce warning messages or notes in the SAS log but allow the program to continue executing. (footnote 1)The location of an execution-time error is usually given as line and column numbers in a note or error message. Common execution-time errors include the following: illegal arguments to functions illegal mathematical operations (for example, division by 0) observations in the wrong order for BY-group processing reference to a nonexistent member of an array (occurs when the array's subscript is out of range) open and close errors on SAS data sets and other files in INFILE and FILE statements INPUT statements that do not match the data lines (for example, an INPUT statement in which you list the wrong columns for a variable or fail to indicate that the variable is a character variable). Out-of-Resources Condition An execution-time error can also occur when you encounter an out-of-resources condition, such as a full disk, or insufficient memory for a SAS procedure to complete. When these conditions occur, SAS attempts to find resources for current use. For example, SAS may ask the user for permission to delete temporary data sets that might no longer be needed, or to free the memory in which macro variables are stored. When an out-of-resources condition occurs in a windowing environment, you can use the SAS CLEANUP system option to display a requestor panel that enables you to choose how to resolve the error. When you run SAS in batch, noninteractive, or interactive line mode, the operation of CLEANUP depends on your operating environment. For more information about this system option, see CLEANUP in the "SAS System Options" chapter in SAS Language Reference: Dictionary, and in the SAS documentation for your operating environment. Examples In the following example, an execution-time error occurs when SAS uses data values from the second observation to perform the division operation in the assignment statement. Division by 0 is an illegal mathematical operation and causes an execution-time error. options linesize=64 nodate pageno=1 pagesize=25; data inventory; input Item $ 1-14 TotalCost UnitsOnHand 21-23; UnitCost=TotalCost/UnitsOnHand; datalines; Hammers Nylon cord 35 0 Ceiling fans ; proc print data=inventory; format TotalCost dollar8.2 UnitCost dollar8.2; SAS Log: Execution-Time Error cpu time 0.02 seconds 1 2 options linesize=64 nodate pageno=1 pagesize=25; 3 80

81 4 data inventory; 5 input Item $ 1-14 TotalCost UnitsOnHand 21-23; 7 UnitCost=TotalCost/UnitsOnHand; 8 datalines; NOTE: Division by zero detected at line 12 column 22. RULE: Nylon cord 35 0 Item=Nylon cord TotalCost=35 UnitsOnHand=0 UnitCost=. _ERROR_=1 _N_=2 NOTE: Mathematical operations could not be performed at the following places. The results of the operations have been set to missing values. Each place is given by: (Number of times) at (Line):(Column). 1 at 12:22 NOTE: The data set WORK.INVENTORY has 3 observations and 4 variables. NOTE: DATA statement used: real time 2.78 seconds cpu time 0.08 seconds 12 ; proc print data=inventory; 15 format TotalCost dollar8.2 UnitCost dollar8.2; 16 NOTE: There were 3 observations read from the dataset WORK.INVENTORY. NOTE: PROCEDURE PRINT used: real time 2.62 seconds SAS Output: Execution-Time Error The SAS System 1 Total Units Obs Item Cost OnHand UnitCost 1 Hammers $ $ Nylon cord $ Ceiling fans $ $38.50 SAS executes the entire step, assigns a missing value for the variable UnitCost in the output, and writes the following to the SAS log: a note the values stored in the input buffer the contents of the program data vector at the time the error occurred a note explaining the error. Note that the values listed in the program data vector include the _N_ and _ERROR_ automatic variables. These automatic variables are assigned temporarily to each observation and are not stored with the data set. In the following example of an execution-time error, the program processes an array and SAS encounters a value of the array's subscript that is out of range. SAS prints an error message to the log and stops processing. options linesize=64 nodate pageno=1 pagesize=25; data test; array all{*} x1-x3; input I measure; if measure > 0 then 81

82 all{i} = measure; datalines; ; proc print data=test; cpu time 0.02 seconds 1 options linesize=64 nodate pageno=1 pagesize=25; 2 3 data test; 4 array all{*} x1-x3; 5 input I measure; 6 if measure > 0 then 7 all{i} = measure; 8 datalines; ERROR: Array subscript out of range at line 12 column 7. RULE: x1=. x2=. x3=. I=. measure=3 _ERROR_=1 _N_=2 NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set WORK.TEST may be incomplete. When this step was stopped there were 1 observations and 5 variables. NOTE: DATA statement used: real time 0.90 seconds cpu time 0.09 seconds 12 ; proc print data=test; 15 NOTE: There were 1 observations read from the dataset WORK.TEST. NOTE: PROCEDURE PRINT used: real time 0.81 seconds Data Errors Data errors occur when some data values are not appropriate for the SAS statements that you have specified in the program. For example, if you define a variable as numeric, but the data value is actually character, SAS generates a data error. SAS detects data errors during program execution and continues to execute the program, and does the following: writes an invalid data note to the SAS log. prints the input line and column numbers that contain the invalid value in the SAS log. Unprintable characters appear in hexadecimal. To help determine column numbers, SAS prints a rule line above the input line. prints the observation under the rule line. sets the automatic variable _ERROR_ to 1 for the current observation. In this example, a character value in the Number variable results in a data error during program execution: options linesize=64 nodate pageno=1 pagesize=25; 82

83 data age; input Name $ Number; datalines; Sue 35 Joe xx Steve 22 ; proc print data=age; The SAS log shows that there is an error in line 61, position 5-6 of the program. SAS Log: Data Error cpu time 0.01 seconds 1 2 options linesize=64 nodate pageno=1 pagesize=25; 3 4 data age; 5 input Name $ Number; 6 datalines; NOTE: Invalid data for Number in line RULE: Joe xx Name=Joe Number=. _ERROR_=1 _N_=2 NOTE: The data set WORK.AGE has 3 observations and 2 variables. NOTE: DATA statement used: real time 0.06 seconds cpu time 0.02 seconds 10 ; proc print data=age; 13 NOTE: There were 3 observations read from the dataset WORK.AGE. NOTE: PROCEDURE PRINT used: real time 0.01 seconds SAS Output: Data Error The SAS System 1 Obs Name Number 1 Sue 35 2 Joe. 3 Steve 22 You can also use the INVALIDDATA= system option to assign a value to a variable when your program encounters invalid data. For more information, see the INVALIDDATA= system option in SAS Language Reference: Dictionary. Format Modifiers for Error Reporting The INPUT statement uses the? and the?? format modifiers for error reporting. The format modifiers control the amount of information that is written to the SAS log. Both the? and the?? modifiers supress the invalid data message. However, the?? modifier also sets the automatic variable _ERROR_ to 0. For example, these two sets of statements are equivalent: nput x?? 10-12; input x? 10-12; 83

84 _error_=0; In either case, isas sets the invalid values of X to missing values. Macro-related Errors Several types of macro-related errors exist: macro compile time and macro execution-time errors, generated when you use the macro facility itself errors in the SAS code produced by the macro facility. For more information about macros, see SAS Macro Language: Reference. FOOTNOTE 1: When you run SAS in noninteractive mode, more serious errors can cause SAS to enter syntax check mode and stop processing the program. Error Processing Syntax Check Mode If a DATA step has a syntax error, SAS can enter syntax check mode. SAS internally sets the OBS= option to 0 and the REPLACE/NOREPLACE option to NOREPLACE. When these options are in effect, SAS reads the remaining statements in the DATA step checks that statements are valid SAS statements executes global statements identifies any other errors that it finds creates the descriptor portion of any output data sets that are specified in program statements does not write any observations to new data sets that SAS creates does not execute most of the subsequent DATA steps or procedures in the program (exceptions include PROC DATASETS and PROC CONTENTS). Note: Any data sets that are created after SAS has entered syntax check mode do not replace existing data sets with the same name. How Different Modes Process Errors When SAS encounters most syntax or semantic errors, SAS underlines the point where it detects the error and identifies the error by number. If SAS encounters a syntax error when you run noninteractive SAS programs or batch jobs, it enters syntax check mode and remains in this mode until the program finishes executing. When you run SAS in interactive line mode or in a windowing environment, syntax check mode is in effect only during the step where SAS encountered the error. When the system detects an error, it stops executing the current step and continues processing the next step. Processing Multiple Errors Depending on the type and severity of the error, the method you use to run SAS, and your operating environment, SAS either stops program processing or flags errors and continues processing. SAS continues to check individual statements in procedures after it finds certain kinds of errors. Thus, in some cases SAS can detect multiple errors in a single statement and may issue more error messages for a given situation, particularly if the statement containing the error creates an output SAS data set. The following example illustrates a statement with two errors: data temporary; Item1=4; proc print data=temporary; var Item1 Item2 Item3; 84

85 SAS Log: Multiple Program Errors cpu time 0.00 seconds 1 data temporary; 2 Item1=4; 3 NOTE: The data set WORK.TEMPORARY has 1 observations and 1 variables. NOTE: DATA statement used: real time 0.10 seconds cpu time 0.01 seconds 4 5 proc print data=temporary; ERROR: Variable ITEM2 not found. ERROR: Variable ITEM3 not found. 6 var Item1 Item2 Item3; 7 NOTE: The SAS System stopped processing this step because of errors. NOTE: PROCEDURE PRINT used: real time 0.53 seconds cpu time 0.01 seconds SAS displays two error messages, one for the variable Item2 and one for the variable Item3. When running debugged production programs that are unlikely to encounter errors, you may want to force SAS to abend after a single error occurs. You can use the ERRORABEND system option to do this. Using System Options to Debug a Program You can use the following system options to control error handling (resolve errors) in your program: BYERR controls whether SAS generates an error message and sets the error flag when a _NULL_ data set is used in the SORT procedure. DKRICOND= controls the level of error detection for input data sets during the processing of DROP=, KEEP=, and RENAME= data set options. DKROCOND= controls the level of error detection for output data sets during the processing of DROP=, KEEP=, and RENAME= data set options and the corresponding DATA step statements. DSNFERR controls how SAS responds when a SAS data set is not found. ERRORABEND specifies how SAS responds to errors. ERRORCHECK= controls error handling in batch processing. ERRORS= controls the maximum number of observations for which complete error messages are printed. FMTERR determines whether SAS generates an error message when a format of a variable cannot be found. INVALIDDATA= specifies the value that SAS assigns to a variable when invalid numeric data is encountered. MERROR controls whether SAS issues a warning message when a macro-like name does not match a macro keyword. SERROR controls whether SAS issues a warning message when a defined macro variable reference does not match a macro variable. VNFERR controls how SAS responds when a _NULL_ data set is used. For more information, see "SAS System Options" in SAS Language Reference: Dictionary. Using Return Codes In some operating environments SAS passes a return code to the system, but accessing return codes is specific to your operating environment. Operating Environment Information: For more information about return codes, see the SAS documentation for your operating environment. 85

86 J. APPROFONDIMENTI: MANIPOLAZIONE DI DATA SET SAS J1. Overview of Methods for Combining SAS Data Sets You can use these methods to combine SAS data sets: concatenating interleaving one-to-one reading one-to-one merging match merging updating. Concatenating The following figure shows the results of concatenating two SAS data sets. Concatenating the data sets appends the observations from one data set to another data set. The DATA step reads DATA1 sequentially until all observations have been processed, and then reads DATA2. Data set COMBINED contains the results of the concatenation. Note that the data sets are processed in the order in which they are listed in the SET statement. Interleaving The following figure shows the results of interleaving two SAS data sets. Interleaving intersperses observations from two or more data sets, based on one or more common variables. Data set COMBINED shows the result. 86

87 One-to-One Reading and One-to-One Merging The following figure shows the results of one-to-one reading and one-to-one merging. One-to-one reading combines observations from two or more SAS data sets by creating observations that contain all of the variables from each contributing data set. Observations are combined based on their relative position in each data set, that is, the first observation in one data set with the first in the other, and so on. The DATA step stops after it has read the last observation from the smallest data set. One-to-one merging is similar to a one-to-one reading, with two exceptions: you use the MERGE statement instead of multiple SET statements, and the DATA step reads all observations from all data sets. Data set COMBINED shows the result. Match-Merging The following figure shows the results of match-merging. Matchmerging combines observations from two or more SAS data sets into a single observation in a new data set based on the values of one or more common variables. Data set COMBINED shows the results. 87

88 Updating The following figure shows the results of updating a master data set. Updating uses information from observations in a transaction data set to delete, add, or alter information in observations in a master data set. You can update a master data set by using the UPDATE statement or the MODIFY statement. If you use the UPDATE statement, your input data sets must be sorted by the values of the variables listed in the BY statement. (In this example, MASTER and TRANSACTION are both sorted by Year.) If you use the MODIFY statement, your input data does not need to be sorted. UPDATE replaces an existing file with a new file, allowing you to add, delete, or rename columns. MODIFY performs an update in place by rewriting only those records that have changed, or by appending new records to the end of the file. Note that by default, UPDATE and MODIFY do not replace nonmissing values in a master data set with missing values from a transaction data set. 88

NOTE INTRODUTTIVE AL SISTEMA SAS

NOTE INTRODUTTIVE AL SISTEMA SAS DIPARTIMENTO DI MATEMATICA UNIVERSITÀ DI GENOVA Via Dodecaneso, 35-16146 GENOVA (Italy) tel. +39-010-3536751 fax +39-010-3536752 NOTE INTRODUTTIVE AL SISTEMA SAS Fabio Rapallo - Ivano Repetto - Maria Piera

Dettagli

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Dettagli

Manipolazioni elementari di flussi di testo strutturati

Manipolazioni elementari di flussi di testo strutturati Manipolazioni elementari di flussi di testo strutturati L output di molti comandi è costituito da flussi di testo strutturati: ogni riga rappresenta una parte del risultato ed è divisa in campi (fields)

Dettagli

Struttura del sistema SAS. Introduzione a SAS SAS PROCESSING. Componenti del linguaggio SAS. a.a. 2011/12 Analisi multivariata

Struttura del sistema SAS. Introduzione a SAS SAS PROCESSING. Componenti del linguaggio SAS. a.a. 2011/12 Analisi multivariata Struttura del sistema SAS Introduzione a SAS a.a. 2011/12 Analisi multivariata Carla Rampichini rampichini@ds.unifi.it Analisi dei dati 2 passi fondamentali: 1. organizzazione dei dati; 2. analisi dei

Dettagli

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita UD4 - MATLAB M-file. Efficienza degli algoritmi. Formati d uscita M-files In MatLab è possibile eseguire istruzioni contenute in file esterni; Tali file sono chiamati M-file perché devono avere estensione.m

Dettagli

PSICOMETRIA. Esercitazione n.1. C.d.L. Comunicazione e Psicologia a.a. 2012/13

PSICOMETRIA. Esercitazione n.1. C.d.L. Comunicazione e Psicologia a.a. 2012/13 PSICOMETRIA Esercitazione n.1 C.d.L. Comunicazione e Psicologia a.a. 2012/13 ESERCITAZIONE 1: INDICE 1. Informazioni di carattere generale sulle esercitazioni 2. Il foglio di calcolo (Excel) 3. Avviare

Dettagli

Mini-Corso di Informatica

Mini-Corso di Informatica Mini-Corso di Informatica CALCOLI DI PROCESSO DELL INGEGNERIA CHIMICA Ing. Sara Brambilla Tel. 3299 sara.brambilla@polimi.it Note sulle esercitazioni Durante le esercitazioni impareremo a implementare

Dettagli

INDICE. Vista Libretto Livello Digitale 2. Importazione di dati da strumento 3. Inserisci File Vari 5. Compensazione Quote 5.

INDICE. Vista Libretto Livello Digitale 2. Importazione di dati da strumento 3. Inserisci File Vari 5. Compensazione Quote 5. Prodotto da INDICE Vista Libretto Livello Digitale 2 Importazione di dati da strumento 3 Inserisci File Vari 5 Compensazione Quote 5 Uscite 6 File Esporta Livellazioni (.CSV) 6 Corso Livello Digitale Pag.

Dettagli

EXCEL: FORMATTAZIONE E FORMULE

EXCEL: FORMATTAZIONE E FORMULE EXCEL: FORMATTAZIONE E FORMULE Test VERO o FALSO (se FALSO giustifica la risposta) 1) In excel il contenuto di una cella viene visualizzato nella barra di stato 2) In excel il simbolo = viene utilizzato

Dettagli

Procedura operativa per la gestione della funzione di formazione classi prime

Procedura operativa per la gestione della funzione di formazione classi prime Procedura operativa per la gestione della funzione di formazione classi prime Questa funzione viene fornita allo scopo di effettuare la formazione delle classi prime nel rispetto dei parametri indicati

Dettagli

LabVIEW parte II. Ing. Gianfranco Miele November 3, 2010

LabVIEW parte II. Ing. Gianfranco Miele  November 3, 2010 Ing. Gianfranco Miele (g.miele@unicas.it) http://www.docente.unicas.it/gianfranco_miele November 3, 2010 Le stringhe Una stringa è una sequenza di caratteri Ogni carattere ha una corrispondente codifica

Dettagli

PG5 Starter Training Applicazione File System Daniel Ernst EN02 2012-02-26 Stefano Peracchi IT01 2013-05-20

PG5 Starter Training Applicazione File System Daniel Ernst EN02 2012-02-26 Stefano Peracchi IT01 2013-05-20 PG5 Starter Training Applicazione File System Daniel Ernst EN02 2012-02-26 Stefano Peracchi IT01 2013-05-20 Introduzione Materiale richiesto Notebook o computer Controllore PCD1 E Cavo USB Scheda «Training»

Dettagli

Il DOS diagramma di flusso. I comandi del DOS. I comandi: vista funzionale. Parametri. Opzioni. I comandi: sintassi

Il DOS diagramma di flusso. I comandi del DOS. I comandi: vista funzionale. Parametri. Opzioni. I comandi: sintassi Il DOS diagramma di flusso Inizio Bootstrap I comandi del DOS Fondamenti di Informatica Anno Accademico 2000-01 1 Stampa prompt Leggi comando Esegui comando 2 I comandi: vista funzionale Parametri input

Dettagli

Grafici. 1 Generazione di grafici a partire da un foglio elettronico

Grafici. 1 Generazione di grafici a partire da un foglio elettronico Grafici In questa parte analizzeremo le funzionalità relative ai grafici. In particolare: 1. Generazione di grafici a partire da un foglio elettronico 2. Modifica di un grafico 1 Generazione di grafici

Dettagli

PROGRAMMAZIONE STRUTTURATA

PROGRAMMAZIONE STRUTTURATA PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:

Dettagli

COSTRUZIONE DI UN APPLICAZIONE

COSTRUZIONE DI UN APPLICAZIONE COSTRUZIONE DI UN APPLICAZIONE Per costruire un applicazione occorre: compilare il file (o i file se più d uno) che contengono il testo del programma (file sorgente) Il risultato sono uno o più file oggetto.

Dettagli

Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro;

Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro; EXCEL Modulo 3 I Grafici Grafici Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro; Quando si crea un grafico ogni

Dettagli

REGISTRATION. Area Ricerca

REGISTRATION. Area Ricerca REGISTRATION Note: former students can skip the registration process and log in using their account (id123456) 1.1 HOW TO REGISTER: please, go to web page www.univr.it/applicationphd and select the item

Dettagli

Gestione di files Motivazioni

Gestione di files Motivazioni Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)

Dettagli

Informatica Teorica. Macchine a registri

Informatica Teorica. Macchine a registri Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire

Dettagli

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo. PROBLEMA. Un albergo di una grande città intende gestire in modo automatizzato sia le prenotazioni sia i soggiorni e realizzare un database. Ogni cliente viene individuato, tra l altro, con i dati anagrafici,

Dettagli

Lab. di Sistemi Operativi - Esercitazione - Comandi Shell

Lab. di Sistemi Operativi - Esercitazione - Comandi Shell Lab. di Sistemi Operativi - Esercitazione - Comandi Shell 1 - Esercizi Comandi Unix - 2 Esercizio n 0 0a) creare una cartella EsercitazioneLSO-1 nella directory di lavoro 0b) creare un file testo chiamato

Dettagli

VISUAL BASIC FOR APPLICATION

VISUAL BASIC FOR APPLICATION VISUAL BASIC FOR APPLICATION LA PIATTAFORMA DI SVILUPPO GLI ELEMENTI DI VBA Finestra di progetto: mostra l elenco gerarchico dei progetti aperti e di tutti i moduli di codice e finestre di interfaccia

Dettagli

DOCUMENTAZIONE WEB RAIN - ACCESSO CLIENTI

DOCUMENTAZIONE WEB RAIN - ACCESSO CLIENTI DOCUMENTAZIONE WEB RAIN - ACCESSO CLIENTI L accesso alle informazioni sullo stato degli ordini di vendita del sistema informativo della società RAIN avviene attraverso il sito internet della società stessa

Dettagli

WINDOWS TERMINAL SERVER PER L ACCESSO REMOTO AL SISTEMA DI PROTOCOLLO INFORMATICO

WINDOWS TERMINAL SERVER PER L ACCESSO REMOTO AL SISTEMA DI PROTOCOLLO INFORMATICO Servizi per l e-government nell università Federico II WINDOWS TERMINAL SERVER PER L ACCESSO REMOTO AL SISTEMA DI PROTOCOLLO INFORMATICO CONNESSIONE_TERMINAL_SERVER PAG. 1 DI 13 Indice 1. Premessa...3

Dettagli

I grafici a torta. Laboratorio con EXCEL. 1 Come si costruisce un grafico a torta

I grafici a torta. Laboratorio con EXCEL. 1 Come si costruisce un grafico a torta I grafici a torta 1 Come si costruisce un grafico a torta In un gruppo di 130 persone è stata condotta un indagine per sapere quale è la lingua più parlata, oltre l italiano. Gli intervistati potevano

Dettagli

Excel. I fogli di calcolo Le funzioni base Gli strumenti. 1

Excel. I fogli di calcolo Le funzioni base Gli strumenti.  1 Excel I fogli di calcolo Le funzioni base Gli strumenti www.vincenzocalabro.it 1 I fogli di calcolo Utilizzando questo programma possiamo costruire fogli di calcolo più o meno complessi che ci consento

Dettagli

PDF Icon. PDF Icon. PDF Icon. PDF Icon. PDF Icon. PDF Icon FOOTER

PDF Icon. PDF Icon. PDF Icon. PDF Icon. PDF Icon. PDF Icon FOOTER PDF PDF PDF PDF PDF All items sort by recent. Data, Pdf icon, lini to Attached file in a target= _blank window On the block Data show just: dd/mm/yyy PDF Pagination after 20 items or ajax load after 20

Dettagli

Downloading and Installing Software Socio TIS

Downloading and Installing Software Socio TIS Object: Downloading and Installing Software Socio TIS compiler: L.D. Date Revision Note April 17 th 2013 --- For SO XP; Win 7 / Vista step Operation: Image A1 Open RUN by clicking the Start button, and

Dettagli

EDI Manuale Sistemista. EDI Manuale Sistemista

EDI Manuale Sistemista. EDI Manuale Sistemista EDI Manuale Sistemista Paragrafo-Pagina di Pagine 1-1 di 12 Versione 44 del 11/11/2011 SOMMARIO 1 A Chi è destinato... 1-3 2 Pre requisiti... 2-3 3 Obiettivi... 3-3 4 Durata della formazione... 4-3 5 Introduzione

Dettagli

VALORIZZAZIONE MOVIMENTI DI SCARICO E VALORIZZAZIONE TRASFERIMENTO COSTI DI ANALITICA

VALORIZZAZIONE MOVIMENTI DI SCARICO E VALORIZZAZIONE TRASFERIMENTO COSTI DI ANALITICA VALORIZZAZIONE MOVIMENTI DI SCARICO E VALORIZZAZIONE TRASFERIMENTO COSTI DI ANALITICA Riportiamo di seguito i vari passaggi per poter gestire la rivalorizzazione, sui documenti di scarico, del costo di

Dettagli

IMPORTAZIONE PRESENZE DA RILEVATORI ELETTRONICI. tramite file tracciato

IMPORTAZIONE PRESENZE DA RILEVATORI ELETTRONICI. tramite file tracciato IMPORTAZIONE PRESENZE DA RILEVATORI ELETTRONICI tramite file tracciato 1. Associazione del numero di badge ai nominativi Il programma PowerDIP consente di importare le presenze acquisiste con i rilevatori

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi: Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli

Dettagli

DATABASE PER IL WEB. Programmazione Web 1

DATABASE PER IL WEB. Programmazione Web 1 DATABASE PER IL WEB Programmazione Web 1 Archite3ura web con database Client Tier Web/App Tier DB Tier Client Web / App Server Database Il server web comunica con un altro server che con8ene il la banca

Dettagli

Algoritmi. Pagina 1 di 5

Algoritmi. Pagina 1 di 5 Algoritmi Il termine algoritmo proviene dalla matematica e deriva dal nome di in algebrista arabo del IX secolo di nome Al-Khuwarizmi e sta ad indicare un procedimento basato su un numero finito operazioni

Dettagli

SQL Server 2008. Architettura Client-Server. SQL Server 2008. Introduzione all uso di SQL Server 2008. Dutto Riccardo. http://dbdmg.polito.

SQL Server 2008. Architettura Client-Server. SQL Server 2008. Introduzione all uso di SQL Server 2008. Dutto Riccardo. http://dbdmg.polito. SQL Server 2008 Introduzione all uso di SQL Server 2008 Dutto Riccardo http://dbdmg.polito.it SQL Server 2008 Gestione dei server OLAP e OLTP Gestione Utenti Creazione e gestione DB SQL Server Business

Dettagli

Files in C++ Fondamenti di Informatica. R. Basili. a.a. 2006-2007

Files in C++ Fondamenti di Informatica. R. Basili. a.a. 2006-2007 Files in C++ Fondamenti di Informatica R. Basili a.a. 2006-2007 Sintesi Motivazioni Definizione di file in C++ Un esempio Uso dei file Esempi Esercizi Motivazioni il programma in esecuzione legge (sequenzialmente)

Dettagli

Importazione dati. e/fiscali Spesometro - Rel. 04.05.01. con gestionale e/satto. Gestionale e/satto

Importazione dati. e/fiscali Spesometro - Rel. 04.05.01. con gestionale e/satto. Gestionale e/satto e/fiscali Spesometro - Rel. 04.05.01 Importazione dati con gestionale e/satto 06118930012 Tribunale di Torino 2044/91 C.C.I.A.A. 761816 - www.eurosoftware.it Pagina 1 ATTENZIONE. Per poter procedere con

Dettagli

Programma Richiesta riproduzione RFID versione 1.0

Programma Richiesta riproduzione RFID versione 1.0 Programma Richiesta riproduzione RFID versione 1.0 Il programma consente al gestore di acquisire l elenco degli apparecchi cui all art. 110 del T.U.L.P.S., comma 7 da allegare alle dichiarazioni di cui

Dettagli

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette. 3.5 STAMPA UNIONE Le funzioni della stampa unione (o stampa in serie) permettono di collegare un documento principale con un elenco di nominativi e indirizzi, creando così tanti esemplari uguali nel contenuto,

Dettagli

Un esempio di if annidati

Un esempio di if annidati Programmazione A.A. 2002-03 I Costrutti di base ( Lezione XIV, parte I ) Costrutto di selezione switch Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di

Dettagli

Corso di Fondamenti di Informatica Classi di istruzioni 2

Corso di Fondamenti di Informatica Classi di istruzioni 2 Corso di Informatica Classi di istruzioni 2 Anno Accademico 2010/2011 Francesco Tortorella Strutture di controllo Caratteristica essenziale degli algoritmi è la possibilità di decidere le operazioni da

Dettagli

2011 Politecnico di Torino 1

2011 Politecnico di Torino 1 SQL per le applicazioni Esercitazione PHP e MySQL Svolgimento D B M G Passi di risoluzione creazione e popolamento della base di dati Creazione di un script SQL Passo 2 creazione di una query d interrogazione

Dettagli

Manuale d uso DropSheep 4 imaio Gestione Pixmania-PRO Ver 1.1

Manuale d uso DropSheep 4 imaio Gestione Pixmania-PRO Ver 1.1 Manuale d uso DropSheep 4 imaio Gestione Pixmania-PRO Ver 1.1 Release NOTE 1.1 Prima Versione del Manuale INDICE 1-INTRODUZIONE... 4 2- GESTIONE DEL CATALOGO PIXMANIA-PRO SU IMAIO... 5 3-Configurazione

Dettagli

Campo di Variazione Costituisce la misura di

Campo di Variazione Costituisce la misura di Statistica2 22/09/2015 I Parametri di dispersione Campo di Variazione Costituisce la misura di PESO ALLA NASCITA DEI BOVINI matricola PESO SESSO 7 38,00 F 8 38,00 F 1 40,00 F 2 40,00 F 5 40,00 F 10 42,00

Dettagli

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1 Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria R. Vitolo Dipartimento di Matematica Università di Lecce SaLUG! - Salento Linux User Group Il programma OCTAVE per l

Dettagli

2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.

2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno. Tipo File Per memorizzare un dato su un supporto magnetico come un hard disk o un nastro, o più in generale su un'unità di memoria di massa viene utilizzata un tipo di dato chiamato file. Un file può essere

Dettagli

Sintesi dei dati in una tabella. Misure di variabilità (cap. 4) Misure di forma (cap. 5) Statistica descrittiva (cap. 6)

Sintesi dei dati in una tabella. Misure di variabilità (cap. 4) Misure di forma (cap. 5) Statistica descrittiva (cap. 6) Sintesi dei dati in una tabella Misure di variabilità (cap. 4) Misure di forma (cap. 5) Statistica descrittiva (cap. 6) Sintesi dei dati Spesso si vuole effettuare una sintesi dei dati per ottenere indici

Dettagli

By E.M. note sull'uso di GAMBAS

By E.M. note sull'uso di GAMBAS By E.M. note sull'uso di GAMBAS GAMBAS viene installato sotto Xubuntu nella directory: /usr/share/gambas2 link problema su uso dell'esempio SerialPort http://gambasrad.org/zforum/view_topic?topic_id=1057

Dettagli

SQL - Sottointerrogazioni

SQL - Sottointerrogazioni una delle ragioni che rendono SQL un linguaggio potente è la possibilità di esprimere interrogazioni più complesse in termini di interrogazioni più semplici, tramite il meccanismo delle subqueries (sottointerrogazioni)

Dettagli

I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002

I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 dott.ssa Francesca A. Lisi lisi@di.uniba.it Sommario Generalità sui file in C I file ad accesso sequenziale I file di testo Riferimenti

Dettagli

WINDOWS95. 1. Avviare Windows95. Avviare Windows95 non è un problema: parte. automaticamente all accensione del computer. 2. Barra delle applicazioni

WINDOWS95. 1. Avviare Windows95. Avviare Windows95 non è un problema: parte. automaticamente all accensione del computer. 2. Barra delle applicazioni WINDOWS95 1. Avviare Windows95 Avviare Windows95 non è un problema: parte automaticamente all accensione del computer. 2. Barra delle applicazioni 1 La barra delle applicazioni permette di richiamare le

Dettagli

Guida a SacramentiWeb 1.2

Guida a SacramentiWeb 1.2 Guida a SacramentiWeb 1.2 Benvenuti! Dopo aver effettuato il logon, potete utilizzare le funzionalità di accesso alla Banca Dati del Vicariato di Roma. Tramite il menù principale potrete accedere a: Ricerca

Dettagli

Come usare la piattaforma StartUp

Come usare la piattaforma StartUp Come usare la piattaforma StartUp Gestione del profilo personale Per rendere visibile il tuo profilo agli altri utenti: Accedi al tuo profilo Ø Personal desktop > Personal Data and Profile Aggiorna il

Dettagli

Definizione di metodi in Java

Definizione di metodi in Java Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un

Dettagli

Compilazione on-line del Piano di Studio

Compilazione on-line del Piano di Studio Compilazione on-line del Piano di Studio 1 Indice 1. INTRODUZIONE E ACCESSO AL SISTEMA... 3 1.1. Accesso alla funzionalità... 3 2. COMPILAZIONE DEL PIANO DI STUDIO... 4 2.1. Struttura della procedura di

Dettagli

10. Come pianificare appuntamenti

10. Come pianificare appuntamenti 10. Come pianificare appuntamenti Insegnamento di Informatica Elisabetta Ronchieri Corso di Laurea di Economia, Universitá di Ferrara I semestre, anno 2014-2015 Elisabetta Ronchieri (Universitá...) Insegnamento

Dettagli

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato. Il File System Il file system È quella parte del Sistema Operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa. Realizza i concetti

Dettagli

sdforexcontest2009 Tool

sdforexcontest2009 Tool sdforexcontest2009 Tool Guida all istallazione e rimozione. Per scaricare il tool del campionato occorre visitare il sito dell organizzatore http://www.sdstudiodainesi.com e selezionare il link ForexContest

Dettagli

La segreteria didattica dovrà eseguire semplici operazioni per effettuare lo scrutinio:

La segreteria didattica dovrà eseguire semplici operazioni per effettuare lo scrutinio: GESTIONE SCRUTINI SEGRETERIA La segreteria didattica dovrà eseguire semplici operazioni per effettuare lo scrutinio: 1. CONTROLLO PIANI DI STUDIO DELLE CLASSI; 2. ASSEGNAZIONI PROFESSORI MATERIE; 3. CONTROLLO

Dettagli

Guida all immatricolazione online

Guida all immatricolazione online Dottorati di Ricerca Guida all immatricolazione online (English version at the end) 1. Effettuare il login inserendo nome utente e password, quindi fare click a sinistra sulla voce Immatricolazione. A

Dettagli

BASI DATI: algebra relazionale

BASI DATI: algebra relazionale BASI DATI: algebra relazionale BIOINGEGNERIA ED INFORMATICA MEDICA 1 Algebra relazionale Definizione L'algebra relazionale è un insieme di operazioni (query) che servono per manipolare relazioni (tabelle).

Dettagli

Manuale Utente CMMG Corso Medici Medicina Generale

Manuale Utente CMMG Corso Medici Medicina Generale CMMG- Manuale Utente CMMG Aprile 2014 Versione 1.1 Manuale Utente CMMG Corso Medici Medicina Generale CMMG-Manuale Utente.doc Pagina 1 di 14 CMMG- Manuale Utente AGGIORNAMENTI DELLE VERSIONI Versione Data

Dettagli

User Guide Guglielmo SmartClient

User Guide Guglielmo SmartClient User Guide Guglielmo SmartClient User Guide - Guglielmo SmartClient Version: 1.0 Guglielmo All rights reserved. All trademarks and logos referenced herein belong to their respective companies. -2- 1. Introduction

Dettagli

Currency Converter (conversione di valute)

Currency Converter (conversione di valute) Capitolo 6 Currency Converter (conversione di valute) Il modo Currency Converter (conversione di valute) consente di eseguire all istante la conversione da una valuta in altre due valute. È anche possibile

Dettagli

Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto

Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto Il Pascal (continua) Università degli Studi di Salerno Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto A.A. 2005/2006 Le procedure! Spesso, soprattutto

Dettagli

1 DESCRIZIONE DELLE FUNZIONI... 3 1.1 REGISTRAZIONE UTENZE INTERNET... 3. 1.1.1 Caricamento utente internet (data entry)... 3

1 DESCRIZIONE DELLE FUNZIONI... 3 1.1 REGISTRAZIONE UTENZE INTERNET... 3. 1.1.1 Caricamento utente internet (data entry)... 3 Portale TESEO Guida al servizio INDICE 1 DESCRIZIONE DELLE FUNZIONI... 3 1.1 REGISTRAZIONE UTENZE INTERNET.... 3 1.1.1 Caricamento utente internet (data entry)... 3 1.1.2 Primo accesso e registrazione...

Dettagli

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati.

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati. ACCESS Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati. Database Relazionale: tipo di database attualmente più diffuso grazie alla

Dettagli

= < < < < < Matematica 1

= < < < < < Matematica  1 NUMERI NATURALI N I numeri naturali sono: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,... L insieme dei numeri naturali è indicato con la lettera. Si ha cioè: N= 0,1,2,3,4,5,6,7,.... L insieme dei naturali privato

Dettagli

Argomenti Corso SAP Online ABAP/4 Completo

Argomenti Corso SAP Online ABAP/4 Completo Argomenti Corso SAP Online ABAP/4 Completo Finalità: acquisire le competenze tecniche per programmare in ABAP/4 attraverso i Module Pool, le Smartform, i Job, l esecuzione del debug di sistema, ecc. Destinatari:

Dettagli

Video Scrittura (MS Word) Lezione 2 Tabelle e Immagini

Video Scrittura (MS Word) Lezione 2 Tabelle e Immagini Video Scrittura (MS Word) Lezione 2 Tabelle e Immagini Word consente di inserire nello stesso documento, oltre al testo, molte altri generi di informazioni: - Tabelle - Immagini - Disegni, forme particolari

Dettagli

Argomenti Corso SAP Online ABAP Completo

Argomenti Corso SAP Online ABAP Completo Argomenti Corso SAP Online ABAP Completo Lezione 1 Navigazione e visualizzazione tabelle o Database SAP in ambienti Oracle e SQL Server: Navigazione e visualizzazione delle tabelle SE16; Utilizzo del match-code;

Dettagli

Shell BASH. Variabili Redirezione

Shell BASH. Variabili Redirezione Shell BASH Variabili Redirezione Variabili Scrittura/definizione: a=3 (senza spazi) Lettura: ${a} o semplicemente $a Esempi: > a=3 > echo $a 3 > echo $aa > echo ${a}a 3a > a=ciao pippo bash: pippo: command

Dettagli

Grafici e Pagina web

Grafici e Pagina web Grafici e Pagina web Grafici Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro. Quando si crea un grafico ogni riga

Dettagli

Informatica giuridica Informatica del diritto Abilità informatiche (5 CFU)

Informatica giuridica Informatica del diritto Abilità informatiche (5 CFU) Informatica giuridica Informatica del diritto Abilità informatiche (5 CFU) N. AMBIENTE SOFTWARE COMPITO AZIONE NOME NOTE 01 Desktop Windows crea mouse tasto destro nuovo B 23D086N è il codice fiscale di

Dettagli

4 GLI ARRAY E LE STRINGHE

4 GLI ARRAY E LE STRINGHE 13 4 GLI ARRAY E LE STRINGHE 4.1 Gli array monodimensionali Un array è un insieme di variabili dello stesso tipo, cui si fa riferimento mediante uno stesso nome. L accesso ad un determinato elemento si

Dettagli

LabMecFit. versione beta. by S.Frasca Dipartimento di Fisica Università Sapienza Roma

LabMecFit. versione beta. by S.Frasca Dipartimento di Fisica Università Sapienza Roma LabMecFit versione beta by S.Frasca Dipartimento di Fisica Università Sapienza Roma LabMecFit è un programma che permette di elaborare i dati prodotti da DataStudio. I dati devono essere salvati da DataStudio

Dettagli

Introduzione al linguaggio Fortran 90

Introduzione al linguaggio Fortran 90 Introduzione al linguaggio Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2007/2008 Fortran 90: concetti di base DIS - Dipartimento di informatica e sistemistica

Dettagli

Percorso Formativo SAP Online ABAP/4 Completo

Percorso Formativo SAP Online ABAP/4 Completo Introduzione ad ABAP/4 Programma report Programma interattivo Tabelle SAP Smartforms SAP Query Percorso Formativo SAP Online ABAP/4 Completo Navigazione e visualizzazione tabelle Navigazione e visualizzazione

Dettagli

Manuale Utente F.IT.A.B. MANUALE UTENTE F.IT.A.B. F.IT.A.B. Pagina 1

Manuale Utente F.IT.A.B. MANUALE UTENTE F.IT.A.B. F.IT.A.B.  Pagina 1 MANUALE UTENTE F.IT.A.B. F.IT.A.B. www.fitab.it Pagina 1 Sommario INSERIMENTO NUOVO TESSERATO...3 RICERCA TESSERATO...5 GESTIONE TESSERAMENTO...6 Confermare il tesseramento...9 Rettificare il tesseramento...9

Dettagli

OPERAZIONI CHIUSURA E APERTURA Note operative

OPERAZIONI CHIUSURA E APERTURA Note operative OPERAZIONI CHIUSURA E APERTURA Note operative N.B. E importante accertarsi, in caso di multiutenza, che altri operatori non effettuino operazioni contabili mentre ci si appresta a generare le chiusure

Dettagli

drag & drop visual programming appinventor storia appinventor un esempio di drag & drop programming: Scratch

drag & drop visual programming appinventor storia appinventor un esempio di drag & drop programming: Scratch drag & drop visual programming appinventor realizzazione app per Google Android OS appinventor è un applicazione drag & drop visual programming Contrariamente ai linguaggi tradizionali (text-based programming

Dettagli

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat. Esame Laboratorio di Sistemi Operativi 2-01-2008 Il compito è costituito da domande chiuse e domande aperte. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 1 ora. Domande chiuse:

Dettagli

FUNZIONI DI BASE PANNELLO SMS

FUNZIONI DI BASE PANNELLO SMS FUNZIONI DI BASE PANNELLO SMS Il pannello sms può essere utilizzato in vari: 1 Inviare un singolo sms (in questo settare solo in mittente in opzioni) 2 inviare sms multipli alla propria rubrica divisa

Dettagli

AUTOCAD: INTERFACCIA AUTOCAD: INTERFACCIA 2 AUTOCAD: INTERFACCIA. 2.1 premessa: ABBREVIAzIONI E ICONE 2.2 SCELTA DELL INTERFACCIA. ICONE Cmd Mnu.

AUTOCAD: INTERFACCIA AUTOCAD: INTERFACCIA 2 AUTOCAD: INTERFACCIA. 2.1 premessa: ABBREVIAzIONI E ICONE 2.2 SCELTA DELL INTERFACCIA. ICONE Cmd Mnu. 2 AUTOCAD: INTERFACCIA AUTOCAD: INTERFACCIA 2.1 premessa: ABBREVIAzIONI E ICONE Significato delle abbreviazioni e delle icone usate in queste pagine. ICONE Indica il menu dell applicazione (AutoCAD 2012)

Dettagli

MANUALE UTENTE PROCEDURA PLANET WEB INTERPRISE (II edizione)

MANUALE UTENTE PROCEDURA PLANET WEB INTERPRISE (II edizione) UNIVERSITA DEGLI STUDI DI MACERATA AREA PERSONALE SETTORE P.T.A. Ufficio presenze e affari generali P.T.A. MANUALE UTENTE PROCEDURA PLANET WEB INTERPRISE (II edizione) Ufficio presenze affari generali

Dettagli

3. Matrici e algebra lineare in MATLAB

3. Matrici e algebra lineare in MATLAB 3. Matrici e algebra lineare in MATLAB Riferimenti bibliografici Getting Started with MATLAB, Version 7, The MathWorks, www.mathworks.com (Capitolo 2) Mathematics, Version 7, The MathWorks, www.mathworks.com

Dettagli

Esercizio 1: archivio CD e DVD

Esercizio 1: archivio CD e DVD Esercizio 1: archivio CD e DVD Realizzare un applicazione Java per la creazione e la consultazione di un archivio di dischi ottici (CD e DVD). L applicazione riceve da standard input in maniera interattiva

Dettagli

ESERCITAZIONE MATLAB

ESERCITAZIONE MATLAB ESERCITAZIONE MATLAB Di seguito sono ripostati alcuni esercizi da eseguire in ambiente MatLab. Gli esercizi sono divisi per argomenti. Ogni esercizio è preceduto da una serie di esempi che aiutano nello

Dettagli

La rappresentazione dei dati

La rappresentazione dei dati La rappresentazione dei dati Base binaria E la base minima che include cifre diverse si devono conoscere le tabelline dello 0 dell 1 in elettronica si realizzano bene dispositivi bistabili There are only

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

Dettagli

Manuale Sito Videotrend

Manuale Sito Videotrend Manuale Sito Videotrend 1 Sommario INTRODUZIONE...3 PRESENTAZIONE...4 1 GESTIONE DDNS...6 1.1 GESTIONE DDNS...6 1.2 CONNESSIONE DDNS...6 1.3 CREA ACCOUNT DDNS...7 1.4 GESTIONEACCOUNT...7 1.5 IMPIANTI DDNS...8

Dettagli

U.T.E FOGLIO ELETTRONICO. Università della Terza Età. Sede di Novate Milanese. Corso Informatica Approfondimento. Docente: Giovanni Pozzi

U.T.E FOGLIO ELETTRONICO. Università della Terza Età. Sede di Novate Milanese. Corso Informatica Approfondimento. Docente: Giovanni Pozzi U.T.E Università della Terza Età Sede di Novate Milanese Corso Informatica Approfondimento FOGLIO ELETTRONICO Docente: Giovanni Pozzi FOGLIO ELETTRONICO MS-Excel E un programma che permette di effettuare:

Dettagli

Il calcolatore. Architettura di un calcolatore (Hardware)

Il calcolatore. Architettura di un calcolatore (Hardware) Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti

Dettagli

Vademecum inserimento Modello Organizzativo attraverso

Vademecum inserimento Modello Organizzativo attraverso Vademecum inserimento Modello Organizzativo attraverso Valeri@ Il modello organizzativo dell ufficio, inserito dagli uffici giudiziari attraverso le pagine web Valeri@, è stato modificato per tenere conto

Dettagli

Oggetto: Utility per la variazione massiva del codice IVA.

Oggetto: Utility per la variazione massiva del codice IVA. Oggetto: Utility per la variazione massiva del codice IVA. Questa utility permette la variazione di massa dei codici IVA nelle anagrafiche articoli, clienti e fornitori e nei documenti significativi al

Dettagli

APPUNTI DELLA LEZIONE DI DATABASE DEL 26/10/2016 Studenti: Marco D'Amato, Adriano Luigi Piscopello Professore: Mario Bochicchio

APPUNTI DELLA LEZIONE DI DATABASE DEL 26/10/2016 Studenti: Marco D'Amato, Adriano Luigi Piscopello Professore: Mario Bochicchio APPUNTI DELLA LEZIONE DI DATABASE DEL 26/10/2016 Studenti: Marco D'Amato, Adriano Luigi Piscopello Professore: Mario Bochicchio INTRODUZIONE L algebra relazionale è l algebra su cui si basa il linguaggio

Dettagli

Linguaggio C: introduzione

Linguaggio C: introduzione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi

Dettagli

Esercitazioni di statistica

Esercitazioni di statistica Esercitazioni di statistica Misure di associazione: Indipendenza assoluta e in media Stefania Spina Universitá di Napoli Federico II stefania.spina@unina.it 22 ottobre 2014 Stefania Spina Esercitazioni

Dettagli

REGISTRATION GUIDE TO RESHELL SOFTWARE

REGISTRATION GUIDE TO RESHELL SOFTWARE REGISTRATION GUIDE TO RESHELL SOFTWARE INDEX: 1. GENERAL INFORMATION 2. REGISTRATION GUIDE 1. GENERAL INFORMATION This guide contains the correct procedure for entering the software page http://software.roenest.com/

Dettagli