Diventa un professionista certificato
In questo blog ti presenterò alcuni dei concetti importanti della programmazione SAS. Prima di iniziare, è importante acquisire familiarità con SAS. Il mio blog precedenteEsercitazione SASti aiuterà a comprendere SAS e le sue applicazioni e ti aiuterà a installare SAS University Edition, che utilizzeremo qui come ambiente di programmazione. Ti chiedi quali sono le competenze che dovresti padroneggiare quest'anno? Inoltre, se hai intenzione di dedicarti all'analisi dei dati,Formazione per la certificazione SASè uno dei modi migliori per iniziare con lo stesso.
È disponibile la Guida alla carriera tecnica di Edureka 2019! Ruoli lavorativi più interessanti, percorsi di apprendimento precisi, prospettive del settore e altro nella guida.ScaricamentoOra.
Quindi senza altroritardo,iniziamo con la programmazione SAS, ok?
Questo blog ti aiuterà a comprendere i seguenti argomenti:
- Fondamenti di programmazione SAS
- Struttura del codice SAS
- Riportato e formattato in SAS
- Circuiti SAS
- Procedure statistiche di base utilizzando SAS
Prima di iniziare a scrivere codice, vorrei informarvi su alcuni termini importanti per la programmazione SAS.
Fondamenti di programmazione SAS
Finestre SAS
Le grandi organizzazioni e gli istituti di formazione preferiscono utilizzare SAS Windows. SAS Windows dispone di numerose utilità che aiutano a ridurre il tempo necessario per scrivere i codici.
L'immagine seguente mostra le diverse parti di SAS Windows.
- Finestra di registro: È una finestra di esecuzione. Qui puoi controllare l'esecuzione del tuo programma. Visualizza anche errori, avvisi e note.
- Finestra del codice:Questa finestra è anche conosciuta come finestra dell'editor. Consideralo come un foglio bianco o un blocco note, dove puoi scrivere il tuo codice SAS.
- Finestra di output: Come suggerisce il nome, questa finestra visualizza l'output del programma/codice che scrivi nell'editor.
- Finestra dei risultati: È un indice che elenca tutti gli output dei programmi eseguiti in una sessione. Poiché contiene i risultati di una sessione particolare, se chiudi il software e lo riavvii, la finestra dei risultati sarà vuota.
- Finestra Esplora: Contiene l'elenco di tutte le librerie presenti nel sistema. Puoi anche sfogliare i file supportati dal sistema qui.
Alcune organizzazioni utilizzano Linux, tuttavia, senza un'interfaccia utente grafica è necessario scrivere codice per ogni query. Quindi è scomodo da usare.
Set di dati SAS
I set di dati SAS sono chiamati file di dati. I file di dati sono costituiti da righe e colonne. Le righe contengono osservazioni e le colonne contengonoNomi variabili.
Variabili SAS
SAS ha due tipi di variabili:
- Variabili numeriche:Questo è il tipo di variabile predefinito. Queste variabili vengono utilizzate nelle espressioni matematiche.
- Variabili di carattere:Le variabili di carattere vengono utilizzate per valori che non vengono utilizzati nelle espressioni matematiche.
Vengono trattati come testo o stringhe. Una variabile diventa una variabile di carattere aggiungendo a‘$’ signalla fine del nome della variabile.
Biblioteche SAS
La libreria SAS è una raccolta di file SAS archiviati nella stessa cartella o directory del computer.
- Biblioteca temporanea: in questa libreria, il set di dati viene eliminato al termine della sessione SAS.
- Biblioteca permanente: I set di dati vengono salvati in modo permanente. Pertanto, sono disponibili in tutte le sessioni.
Gli utenti possono anche creare o definire una nuova libreria nota come librerie definite dall'utente utilizzando la parola chiaveNOMELIB. Anche queste sono biblioteche permanenti.
Programmazione SAS: struttura del codice SAS
La programmazione SAS si basa su due elementi costitutivi:
- DATIPasso: Il passaggio DATA crea un set di dati SAS e quindi passa i dati a un passaggio PROC
- PROCPasso: La fase PROC elabora i dati
Un programma SAS dovrebbe seguire le regole menzionate di seguito:
- Quasi ogni codice inizierà con DATA o PROC Step
- Ogni riga del codice SAS termina con un punto e virgola
- Un codice SAS termina con la parola chiave RUN o QUIT
- I codici SAS non fanno distinzione tra maiuscole e minuscole
- È possibile scrivere un codice su righe diverse oppure scrivere più istruzioni su una riga
Ora che abbiamo visto alcune terminologie di base, iniziamo con la programmazione SAS con questo codice di base:
DATA Employee_Info;input Emp_ID Emp_Name$ Emp_Vertical$;datalines;101 Mak SQL102 Rama SAS103 Priya Java104 Karthik Excel105 Mandeep SAS;Esegui;
Nel codice precedente, abbiamo creato un set di dati chiamato Employee_Info. Ha tre variabili, una variabile numerica come Emp_Id e due variabili di carattere come Emp_Name e Emp_Verticals. Il comando Esegui visualizza il set di dati nella finestra di output.
L'immagine seguente mostra l'output del codice sopra menzionato.
Supponiamo che tu voglia vedere il risultato nella vista di stampa, beh puoi farlo usando una procedura PROC PRINT, il resto del codice rimane lo stesso.
DATA Employee_Info;input Emp_ID Emp_Name$ Emp_Vertical$;datalines;101 Mak SQL102 Rama SAS103 Priya Java104 Karthik Excel105 Mandeep SAS;Esegui;PROC PRINT DATA=Employee_Info;Esegui;
L'immagine seguente mostra l'output del codice sopra.
Abbiamo appena creato un set di dati e capito come funziona la procedura PRINT. Ora prendiamo il set di dati di cui sopra e usiamolo per un'ulteriore programmazione. Supponiamo di voler aggiungere la data di adesione del dipendente al set di dati. Quindi creiamo una variabile chiamata DOJ, la diamo come input e stampiamo il risultato.
DATA Employee_Info;input Emp_ID Emp_Name$ Emp_Vertical$ DOJ;datalines;101 Mak SQL 18/08/2013102 Rama SAS 25/06/2015103 Priya Java 21/02/2010104 Karthik Excel 19/05/2007105 Mandeep SAS 11/09/2016; Esegui;PROC PRINT DATA=Informazioni_dipendente;Esegui;
L'immagine seguente mostra l'output del codice precedente. È visibile che è stata creata una variabile, ma il valore di DOJ non è stato stampato. Invece, vediamo che i punti hanno sostituito i valori della data.
Perché è successo questo? Bene, la variabile DOJ è senza suffisso "$", ciò significa che per impostazione predefinita SAS la leggerà come variabile numerica. Ma i dati che abbiamo inserito hanno un carattere speciale "/", quindi non stampa il risultato poiché non sono dati puramente numerici. Se controlli la finestra di registro vedrai un messaggio di errore come "dati non validi per la variabile DOJ"
Ora come risolviamo questo problema? Bene, un modo per risolverlo è utilizzare il suffisso "$" per la variabile DOJ. Questo convertirà la variabile DOJ in carattere e sarai in grado di stampare i valori della data. Apportiamo le modifiche al codice e vediamo l'output.
DATA Employee_Info;input Emp_ID Emp_Name$ Emp_Vertical$ DOJ$;datalines;101 Mak SQL 18/08/2013102 Rama SAS 25/06/2015103 Priya Java 21/02/2010104 Karthik Excel 19/05/2007105 Mandeep SAS 11/09/2016 ;Esegui;PROC PRINT DATA=Informazioni_dipendente;Esegui;
La schermata di output visualizzerà il seguente output.
Puoi vedere che i valori dei dati vengono visualizzati come date convertendo DOJ in carattere. Tuttavia, questa è una soluzione temporanea. Lasciami spiegare come?
Bene, immagina che una banca abbia un set di dati simile. Il set di dati contiene i dettagli del titolare del conto come importo del prestito, rate,Escadenza della rata del prestito. Immaginiamo che l'intestatario abbia rispettato la scadenza per pagare una rata e la banca voglia calcolare il ritardo. La banca dovrà calcolare la differenza tra la data di scadenza e la data attuale.
Ma se il set di dati della banca contiene date in formato carattere, la banca non sarà in grado di eseguire operazioni matematiche su di esso. Questo problema potrebbe influire anche sul nostro set di dati. Allora come risolviamo questo problema?
Il prossimo concetto ti aiuterà a superare questo problema.
Riportato e formattato in SAS
È importante comprendere bene questo argomento se vuoi essere bravo nella programmazione SAS.Se ricordi, ho detto prima che SAS ha due tipi di variabili standard:
- Numerico
- Carattere
Quando SAS incontra variabili non standard, SAS genererà un errore oppure non otterrai l'output desiderato. Per superare questo problema, SAS utilizzainformatoe formati.
Informato
Gli informat vengono generalmente utilizzati per leggere o inserire dati da file esterni o file flat (comefile di testo o file sequenziali). L'informazione istruisce SAS su come leggeredati in variabili SAS. SAS ha tre tipi di Informats:carattere, numerico e data/ora. Le informazioni vengono denominate come seguestruttura della sintassi:
- Informazioni carattere: $INFORMATw.
- Numerico informato: INFORMATw.d
- Informazioni data/ora: INFORMATw.
Il "$" indica un carattere informativo. INFORMAT si riferisce a volte facoltativoNome delle informazioni SAS. La "w" indica la larghezza (byte o numero di colonne) del filevariabile. La "d" viene utilizzata per i dati numerici per specificare il numero di cifre a destra dila cifra decimale. Tutti i dati devono contenere un punto decimale (.) in modo che SAS possa farlo
differenziare un'informazione da una variabile SAS.
Torniamo al nostro codice precedente e vediamo se Date/Time Informat ci aiuta. Quindi modifichiamo il codice di conseguenza e aggiungiamo un Date Informat come segue:
DATA Employee_Info;input Emp_ID Emp_Name$ Emp_Vertical$ DOJ;INFORMAT DOJ ddmmyy10.;datalines;101 Mak SQL 18/08/2013102 Rama SAS 25/06/2015103 Priya Java 21/02/2010104 Karthik Excel 19/05/2007105 Mandeep SAS 11 /09/2016;Esegui;PROC PRINT DATA=Informazioni_dipendente;Esegui;
La riga numero 3 nel codice indica a SAS di leggere la variabile "data di adesione" (DOJ) utilizzando la data
informare MMGGAAw. Ogni campo data occupa 10 spazi, il qualificatore "w." lo èimpostato su 10.
L'output del codice sarebbe simile al seguente.
Il risultato mostra che non abbiamo ancora il risultato desiderato, invece la colonna DOJ contiene alcuni valori numerici e non le date che abbiamo specificato. Ora, perché? Bene, una volta letta una data con un data informat, SAS memorizza la data come numero. Ciò significa che viene letto come il numero di giorni tra la data e il 1 gennaio 1960 (ad esempio: 15/3/1994 è memorizzato come 12492).
La ragione di ciò è che SAS dispone di tre contatori separati che tengono traccia di data e ora. Questi contatori della data sono partiti da zero il 1 gennaio 1960. Pertanto le date precedenti al 1/1/1960 hanno valori negativi e qualsiasi data successiva ha un valore positivo. Ogni giorno a mezzanotte il contatore della data viene incrementato di uno.
Una storia narra che i fondatori di SAS volessero utilizzare la data di nascita approssimativa del sistema IBM 370 e scelsero il 1 gennaio 1960 come approssimazione facile da ricordare.
Ora che conosci il motivo per cui la colonna DOJ mostrava quei numeri, proviamo a risolvere questo problema. Per superare questo problema utilizziamo Format.
Formato
Gli informats sono le istruzioni per leggere i dati, mentre i formati sono le istruzioni utilizzate per visualizzare odati in uscita.Definire un formato per una variabile è il modo in cui si dice a SAS di visualizzare i valori nella variabile. I formati sono raggruppati nelle stesse tre classi degli informat (carattere, numerico e data-ora) e contengono sempre un punto.
La forma generale di un'istruzione di formato è:
- FORMAT nome variabile FORMAT NOME.;
Torniamo al nostro codice con il set di dati Employee_Info per vedere se possiamo visualizzare correttamente la data utilizzando il comando FORMAT.
DATA Employee_Info;input Emp_ID Emp_Name$ Emp_Vertical$ DOJ;INFORMAT DOJ ggmmaa10.;FORMAT DOJ ggmmaa10.;datalines;101 Mak SQL 18/08/2013102 Rama SAS 25/06/2015103 Priya Java 21/02/2010104 Karthik Excel 19/05 /2007105 Mandeep SAS 09/11/2016;Esegui;PROC PRINT DATA=Info_dipendente;Esegui;
Abbiamo utilizzato il comando FORMAT nella riga numero 4 del codice precedente. La seguente schermata di output ci fornirà l'output desiderato.
Abbiamo visualizzato con successo il set di dati utilizzando il comando Formato data. Spero che tu abbia capito come utilizzare formato e informat.Andiamo avanti con il nostro blog sulla programmazione SAS e diamo un'occhiata a un altro concetto importante.
Circuiti SAS
Durante la programmazione SAS, potremmo incontrare situazioni in cui abbiamo ripetutamente bisogno di eseguire ablocco di codice più volte. È scomodo scrivere sempre la stessa serie di affermazioni. È qui che entrano in gioco i loop.In SAS, l'istruzione Do viene utilizzata per implementare i cicli. È noto anche come Do Loop. L'immagine seguente mostra ilforma generale delle istruzioni Do loop in SAS.
Di seguito sono riportati i tipi di loop DO in SAS:
- Indice: Il ciclo continua dal valore iniziale fino al valore finale della variabile indice.
- Mentre: Il loop continua altrettanto a lungoMentrela condizione diventa falsa.
- Fino a: Il ciclo continua fino alFino ala condizione diventa vera.
Esegui il ciclo dell'indice
Usiamo una variabile indice come valore di inizio e fine perEsegui il ciclo dell'indice. Le istruzioni SAS vengono eseguite ripetutamente finché la variabile indice non raggiunge il suo valore finale.
Sintassi:
Esegui variabile indice = valore iniziale in valore finale; istruzioni SAS; fine;
Diamo un'occhiata al codice di esempio per comprendere Do Index Loop. Nel codice seguente, VAR è la variabile indice.
DATA SampleLoop;SOMMA=0;Esegui VAR = da 1 a 10;SOMMA = SOMMA + VAR;FINE;PROC PRINT DATA = SampleLoop;Esegui;
Quando esegui il codice sopra, otterrai il seguente output.
Esegui il ciclo while
ILFare duranteil ciclo utilizza una condizione WHILE. Questo ciclo esegue il blocco di codice quando la condizione è vera e continua ad eseguirlo finché la condizione non diventa falsa. Una volta che la condizione diventa falsa, il ciclo viene terminato.
Sintassi:
Do While (condizione);Istruzioni SAS;Fine;
Il seguente codice di esempio ti aiuterà a comprendere il ciclo DO WHILE.
DATI SampleLoop;SOMMA=0;VAR=1; Esegui Mentre(VAR<15);SOMMA = SOMMA + VAR;VAR+1;FINE;PROC PRINT DATA = SampleLoop;Esegui;
Il codice sopra ti darà il seguente output.
Esegui fino al ciclo
Il Do Untilloop utilizza un fileFino acondizione.QuestoLoop esegue il blocco di codice quando la condizione è falsa e continua ad eseguirlo finché la condizione non diventa vera. Una volta che la condizione diventa vera, il ciclo viene terminato.
Sintassi:
Do Until (condizione);istruzioni SAS;END;
Diamo un'occhiata al programma di esempio.
DATA SampleLoop;SOMMA=0;VAR=1;Esegui fino a(VAR>15);SOMMA=SOMMA+VAR;VAR+1;FINE;PROC PRINT;Esegui;
Il codice ha il seguente output.
Abbiamo così terminato il concetto di loop nella programmazione SAS. Tutti gli argomenti studiati finora hanno parlato dei fondamenti della programmazione SAS in generale.
Consideriamo ora alcune procedure statistiche. Queste procedure costituiranno la base per l'avanzamentoprocedure analitiche.
Iscriviti al nostro canale YouTube per ricevere nuovi aggiornamenti..!
Procedure statistiche di base utilizzando SAS
PROC SIGNIFICA
Questa procedura viene utilizzata per calcolare la media aritmetica e la deviazione standard. Le persone che sono nuove alla statistica potrebbero avere difficoltà a comprendere questi termini. Quindi, prima di iniziare a scrivere codice e utilizzare questa procedura. Cercherò di spiegare cosa significano questi termini.
Iniziamo con la media aritmetica e vediamo come viene utilizzato PROC MEANS nella programmazione SAS per calcolarla.
Significato aritmetico
La somma del valore delle variabili numeriche, divisa per il numero di variabili, dà il risultatosignificato aritmetico. È noto anche come media ed è una misura della tendenza centrale. Una misura della tendenza centrale è un singolo valore che tenta di descrivere un insieme di dati identificando la posizione centrale all'interno di quell'insieme di dati.
Nella programmazione SAS, si utilizza PROC MEANS per calcolare la media aritmetica. Questa procedura consente di trovare la media di tutte o poche variabili di un set di dati. Puoi anche formare gruppi e calcolare la media delle variabili specifiche di quel gruppo.
Sintassi:
PROC SIGNIFICA DATI = DATASET;Variabili di classe;Variabili Var;
- Variabili: Le variabili nella sintassi precedente indicano variabili del set di dati di cui deve essere calcolata la media.
Media di un set di dati
Se tufornendo solo il nome del set di dati senza alcuna variabile, è possibile calcolare la media di tutte le variabili in un set di dati.
Diamo un'occhiata a un codice di esempio. Ho considerato un set di dati SAS predefinito chiamato "automobili". Il comando seguente visualizzerà il set di dati.
PROC PRINT data=sashelp.CARS;Esegui;
L'immagine seguente mostra l'output del codice precedente.
Usiamo ora questo codice del set di dati e calcoliamo la media di ciascuna variabile nel set di dati'automobili'.
PROC SIGNIFICA DATI = sashelp.CARS Media SUM MAXDEC=2;Esegui;
L'immagine seguente mostra la media di tutte le variabili nel set di dati fino a due decimali.
Media delle variabili selezionate
Fornendo i nomi nell'opzione Var è possibile ottenere la media delle variabili specificate. Si prega di fare riferimento al codice seguente.
PROC SIGNIFICA DATI = sashelp.CARS significa SUM MAXDEC=2;var potenza cilindri;Run;
Media per classe
Puoi trovare la media delle variabili numeriche organizzandole in gruppi utilizzandoalcuni parametri per raggrupparli.Considera il seguente codice di esempio. Scopriamo la media della potenza per diversi gruppi classificati in base alle classi "marca" e "tipo" di diverse auto.
PROC SIGNIFICA DATI = sashelp.CARS SIGNIFICA SOMMA MAXDEC=2;class make type;var horsepower;Run;
L'immagine seguente mostra l'output del codice precedente.
Continuiamo con il nostro blog sulla programmazione SAS e diamo un'occhiata a un altro importante concetto statistico.
Deviazione standard
La deviazione standard (SD) è una misura di quanto sono vari i dati in un determinato set di dati. Matematicamente, ti dice quanto ogni punto di dati è vicino al valore medio di un set di dati. Se il valore della deviazione standard è vicino a 0, indica che i punti dati sono molto vicini alla media del set di dati e una deviazione standard elevata indica che i punti dati sono distribuiti su un ampio intervallo di valori.
In SAS è possibile calcolare il valore della deviazione standard utilizzando due procedure. Sono:
- PROC SIGNIFICA
- MEZZI DI RILIEVO
Deviazione standard utilizzando PROC MEANS
Puoi misurare la deviazione standard utilizzando le medie proc, devi scegliere ilSTopzione nella fase PROC. Verranno visualizzati i valori di deviazione standard per ciascuna variabile numerica nel set di dati.
Sintassi:
PROC SIGNIFICA DATI = set di dati STD;
Considera questo codice di esempio, creiamo un altro set di dati CARS1 dal set di dati CARS nella libreria SASHELP. Per fare questo utilizziamo la procedura PROC SQL. Raggruppiamo i dati utilizzando "tipo" e "marca" di auto e calcoliamo la deviazione standard per le variabili selezionate utilizzando l'opzione STD con il passo delle medie PROC.
PROC SQL;crea tabella CARS1 comeSELECT marca,tipo,potenza,cilindri,pesoFROMSASHELP.CARSWHERE marca in ('Audi','BMW');RUN;PROC MEANS DATA=CARS1 STD;Run;
Il codice sopra fornirà la deviazione standard per le variabili selezionate. L'immagine seguente mostra l'output.
MEZZI DI INDAGINE PROC
Questa procedura viene utilizzata per misurare la deviazione standard insieme ad alcune funzionalità avanzate come la misurazione della deviazione standard per le variabili categoriali e la varianza.
Sintassi:
Opzioni PROC SURVEYMEANS parole chiave-statistica;Per variabili;Variabili di classe;Variabili Var;
Di seguito la descrizione dei parametri utilizzati:
- Diviene utilizzato per indicare le variabili utilizzate per creare gruppi di osservazioni.
- Classeindica le variabili utilizzate per le variabili categoriali.
- Eraindica le variabili per le quali verrà calcolata la SD.
Diamo un'occhiata a questo codice di esempio che descrive l'uso del parametro di classe, che crea le statistiche per ciascuno dei valori nella variabile di classe.
PROC SURVEYMEANS DATA=CARS1 STD;Tipo classe;Var tipo cavalli;ods statistiche output=rettangolo;Correre;PROC PRINT DATA=rettangolo;Correre;
Le immagini seguenti mostrano l'output del codice sopra. Mostra la distribuzione dei dati per la variabile "Potenza" per un intervallo di confidenza del 95%. (Per intervallo di confidenza si intende un intervallo di valori definito in modo tale che esista una probabilità specifica che il valore di un parametro si trovi al suo interno.)
Quindi, questo ci porta alla fine del blog di programmazione SAS. Per qualsiasi dubbio o problema con il contenuto del blog, lasciali nella sezione commenti, li risolverò al più presto e risponderò.
Se desideri imparare SAS e costruire una carriera nel dominio dell'analisi, dai un'occhiata al nostroche include formazione dal vivo con istruttore ed esperienza di progetto nella vita reale. Questa formazione ti aiuterà a comprendere in profondità SAS e a padroneggiare vari concetti del linguaggio di programmazione SAS.
Hai domande per noi? Per favore menzionalo nella sezione commenti e ti risponderemo.