Ho trascorso una parte significativa della mia carriera come specialista della visualizzazione dei dati. Sono molto esigente riguardo alla formattazione e ai rapporti. Quindi, quando ho iniziato a usare SAS, ha affrontato alcune sfide durante la modifica dei formati dei numeri e dei caratteri, soprattutto quando si trattava di date. Non sorprende che sia io che Kunal riceviamo un buon numero di richieste su questo argomento..
e SAS, ci sono diverse opzioni per migliorare i layout dei report. In questo articolo, parleremo in particolare dei metodi per giocare con il formato dei valori dei dati. Va notato che queste modifiche si applicano solo mentre vengono visualizzati i risultati. La modifica del formato di output non cambia la forma, i dati sono memorizzati nel backend.
Per impostazione predefinita, SAS fornisce diversi formati integrati per gestire vari formati, ma non sono sufficienti per soddisfare i requisiti personalizzati che i tuoi dati potrebbero avere. Ad esempio, potremmo aver codificato Maschio e Femmina come M e F (oh 0 e 1), ma durante la stampa vorremmo mostrare il campo solo come MASCHIO e FEMMINA. Un altro esempio comune è la visualizzazione dei prefissi sui numeri di telefono da 10 cifre (ad esempio, 123-3456-789).
PD: Questo è un articolo lungo rispetto a quello che scrivo di solito, quindi sentiti libero di digerirlo a pezzi.
L'articolo è suddiviso in 2 parti generali: Primo, comprendiamo formati predefiniti e formati definiti dall'utente in SAS. Prossimo, analizziamo varie applicazioni ed esempi di questi concetti.
Formati SAS integrati
Prossimo, vengono visualizzati i dati di esempio contenenti dettagli sulle prestazioni dell'agente. Useremo questo set di dati in esempi e discussioni in questo articolo. Qui DOJ è in formato numerico, come definito da SAS per impostazione predefinita, a partire dal 1 di gennaio di 1960.
Diamo prima un'occhiata alla sintassi dell'istruzione FORMAT: –
Sintassi: – FORMATO Formato variabile (S);
Facciamo alcuni esercizi con la dichiarazione di formato:
Esempio 1: Mostra DOJ nel formato GGMMAAAAA:
Codice:
Elabora dati di stampa = Vendite;
Formato Data DOJ 9. ;
Correre;
Produzione:
Ecco l'elenco dei formati di data predefiniti disponibili per modificare il formato di output delle variabili:
Esempio 2: visualizzare l'importo delle vendite in dollari con una cifra decimale
Codice:
Elabora dati di stampa = Vendite;
Importo di vendita formato Dollar9.1;
Correre;
Produzione:
Elenco dei formati di data predefiniti disponibili per modificare il formato di output delle variabili:
Esempio 3: Visualizza Salesamount in dollari con due cifre decimali con virgole e DOJ in formato Weekdate.
Codice:
Elabora dati di stampa = Vendite;
Formato Importo vendite Dollari 12,2 DOJ WEEKDATE .;
Correre;
Produzione:
Necessità di formati definiti dall'utente:
Finora abbiamo visto come cambiare il formato di numeri e date con i formati SAS integrati. Ma ci possono essere molte volte in cui i formati integrati di SAS non soddisfano le nostre esigenze.. Come nel set di dati corrente, vogliamo:
- Spettacoli “MASCHILE” e “FEMMINILE” invece di “m” e “F”
- Ridefinire le categorie A, B, C, D ed E come Ultra, Super, Media, Basso e scarso
- Mostra la frequenza di Salesamount in tre categorie ” = 12000″
Tutte queste cose possono essere fatte con il passaggio dei dati (o PROC SQL) con l'istruzione If-Else (o cambia caso), pero requerirá una nueva variabileIn statistica e matematica, un "variabile" è un simbolo che rappresenta un valore che può cambiare o variare. Esistono diversi tipi di variabili, e qualitativo, che descrivono caratteristiche non numeriche, e quantitativo, che rappresentano quantità numeriche. Le variabili sono fondamentali negli esperimenti e negli studi, poiché consentono l'analisi delle relazioni e dei modelli tra elementi diversi, facilitare la comprensione di fenomeni complessi.... que almacenará estos valores formateados. Mentre, se vogliamo solo cambiare il display (e non i valori nel set di dati), quindi creare un formato definito dall'utente utilizzando PROC FORMAT è un modo più efficiente per apportare queste modifiche.
Formati definiti dall'utente utilizzando Proc FORMAT
PROC FORMAT è una procedura che crea una mappatura dei valori dei dati sulle etichette dei dati. La mappatura FORMAT definita dall'utente è indipendente da un SAS DATA SET e dalle variabili e deve essere assegnata esplicitamente in un DATASTEP e / la successiva PROC.
Sintassi di PROC FORMAT: –
Regole per definire FORMAT NAME:
- Per i valori dei caratteri, il primo carattere deve essere un simbolo del dollaro ($) e una lettera o un carattere di sottolineatura come secondo carattere. Per valori numerici, il nome deve avere una lettera o un carattere di sottolineatura come primo carattere
- Il nome non può finire con un numero
- Non può essere il nome di un formato SAS esistente
- Non deve terminare con un punto nell'istruzione VALUE
Risolviamo i problemi discussi sopra utilizzando il formato PROC:
Problema 1 (e 2): Mostra M e F come maschio e femmina.
Codice:
Formato del processo;
Valore $ Genderfmt 'M’ = 'Maschio’
'F’ = 'Donna';
Correre;
Elabora dati di stampa = Vendite;
Genere Formato $ Genderfmt. ;
Correre;
Produzione:
Allo stesso modo, possiamo risolverlo per il problema 2. Definisci la categoria A, B, C, D ed E come Ultra, Super, Media, Basso e scarso.
Problema 3: vuoi mostrare la frequenza di Salesamount in tre categorie ” = 12000″
Codice:
Formato proc;
Valore Salegrp basso-8000 = '<8000'
8000 – <12000 = '8000-12000'
12000-Alto = '> = 12000';
Correre;
Proc Freq Data = Ventas;
Salesamount Formato Salegrp .;
Mesa Importo di vendita;
Correre;
Produzione:
Al di sopra, Ho usato gli intervalli per definire il formato. Può essere utilizzato per valori numerici e di caratteri.
Le parole chiave speciali utilizzate per definire gli intervalli sono: –
un) Gli intervalli possono essere più valori separati da virgole.
io) 'UN', 'B', 'C’
ii) 22, 44, 67
B) Gli intervalli possono includere o escludere valori di delimitazione, basato sull'uso di varie parole chiave come:
io) 24 – 45: Include i valori di 24 un 45 Compreso 24 e 45.
ii) 24 <- 45: Include i valori tra 24 un 45 Compreso 45 ed escludendo 24.
iii) 24 – <45: Include i valori tra 24 un 45 Compreso 24 ed escludendo 45.
IV) 24 <- <45: Include i valori tra 24 un 45 escludendo 24 e 45.
C) BASSO si riferisce al numero minimo disponibile, ALTO si riferisce al numero più alto disponibile e ALTRO include tutti i numeri non specificati. Altri includono anche valori mancanti se non specificati.
Alcuni punti importanti / applicazioni da considerare su PROC FORMAT
PROC Format restituisce il valore originale se non abbiamo incluso tutti i valori dei dati durante la definizione del formato.
Possiamo creare più formati in un'unica istruzione PROC FORMAT, specificando più valori in formato PROC
Codice:
Formato del processo;
Valore Salegrp basso-8000 = '<8000'
8000 – <12000 = '8000-12000'
12000-Alto = '> = 12000';
Valore $ Genderfmt 'M’ = 'Maschio’
'F’ = 'Donna';
Correre;
Elabora dati di stampa = Vendite;
Salesamount Formato Salegrp. Genere $ Genderfmt .;
Correre;
Produzione:
PAGROC FORMAT può essere utilizzato per creare unioni di dati efficienti
In FORMATO PROC, abbiamo una scelta CNTLIN, che ci consente di creare un formato da un set di dati invece di un'istruzione VALUE. Prima di usare questa opzione, diamo prima un'occhiata alle linee guida qui sotto: –
un) Il set di dati di input deve contenere tre variabili richieste da PROC FORMAT: COMINCIARE, ETICHETTA y FMTNAME.
B) Qui START è il campo chiave tra queste due tabelle e deve essere univoco nel set di dati di input (set di dati, stiamo usando in CNTLIN opzione).
C) La variabile LABEL è il valore che vogliamo assegnare a un altro set di dati.
D) La variabile FMTNAME è il nome del formato e deve essere passata tra virgolette singole.
e) Dopo aver definito il formato, possiamo usare la funzione put per creare una variabile nel set di dati in base al campo chiave e al formato che abbiamo definito.
Esempio:
Supponiamo di voler mappare l'agente DOB dal set di dati Agent_DOB (Dati di esempio) al set di dati precedente
Qui vogliamo creare un formato basato su Agent_DOB e applicalo a Saldi. E Agent_DOB, considereremmo AGT_ID (campo chiave, tra entrambi i set di dati) como START, DOB come etichetta e FMTNAME = '$ AGENT'. Ora guarda le dichiarazioni (prossimo).
Agente dati_DOB_Fmt;
Rinomina AGT_ID = START;
Imposta Agent_DOB;
Etichetta = DOB;
FMTNAME = '$ AGENTE';
Correre;
Formato processo CNTLIN = Agent_DOB_Fmt;
Correre;
Il codice sopra ha generato un formato utilizzando il set di dati Agent_DOB_Fmt e quindi, per unirlo al set di dati SALES, sono stati scritti i passaggi dei dati (prossimo).
Dati Vendite_DOB;
Imposta le vendite;
Date_birth = Put (Otto_ID, $ Agente.);
Correre;
Limitazione di PROC FORMAT come fusione
Questo è il metodo migliore quando vogliamo unire una variabile da un altro set di dati, ma se vogliamo aggiungere cinque o più variabili, quindi dobbiamo ripetere l'istruzione PROC FORMAT tante volte insieme alla funzione PUT multipla nel passaggio dati. Quindi, Preferisco usare MERGE o PROC SQL in questi casi.
Possiamo salvare il formato SAS definito dall'utente per un uso futuro.
Tutti i formati SAS sono archiviati in un catalogo (raccolta di formati). Quando creiamo un formato, è memorizzato nel catalogo. Se non specifichiamo il catalogo, SAS memorizza i formati nella libreria WORK in un catalogo chiamato FORMATS. Come altri set di dati nella libreria WORK, también se eliminan al final de la sessioneIl "Sessione" È un concetto chiave nel campo della psicologia e della terapia. Si riferisce a un incontro programmato tra un terapeuta e un cliente, dove si esplorano i pensieri, Emozioni e comportamenti. Queste sessioni possono variare in durata e frequenza, e il suo scopo principale è quello di facilitare la crescita personale e la risoluzione dei problemi. L'efficacia delle sessioni dipende dalla relazione tra il terapeuta e il terapeuta...
Ora, per salvare formati definiti dall'utente, dobbiamo specificare dove conservare il catalogo e come chiamarlo. Ciò può essere ottenuto memorizzando i formati in una libreria diversa da WORK.
passo 1 Primo, dobbiamo definire una libreria (qui sto usando l'edizione SAS University)
Sintassi: – LIBNAME Nome_libreria “Il percorso”
LIBNAME STATDATA “/ carpetas / miscarpetas / ECSTAT0”;
Step-2 Utilizzare l'opzione libreria in formato PROC e fornire un nome libreria con il nome del file di formato. Il nome del file deve essere un nome di set di dati SAS valido.
Sintassi: – PROC FORMAT LIBRARY = Library_Name.MYFILENAME;
Libreria dei formati di processo = STATDATA.Gender_Fmt;
Valore $ Genderfmt 'M’ = 'Maschio’
'F’ = 'Donna';
Correre;
sopra programmaam ha creato un file chiamato Gender_Fmt.sas7bcat nella posizione della tua directory.
Ora, ogni volta che vogliamo usare un formato memorizzato, dobbiamo dire a SAS di cercare i formati in quel file di catalogo. Questo è fatto con il fmtsearch opzione. Quindi, prima di usarlo, dobbiamo scrivere una dichiarazione.
Sintassi: – Opzioni fmtsearch = (Library_Name.MYFILENAME)
Opzioni fmtsearch = (STATDATA.Gender_Fmt); / * Dopo questo possiamo usare Gender_Fmt * /
Proc Stampa dati = Ventas;
Genere Formato $ Genderfmt .;
Correre;
Il formato immagine SAS crea modelli in cui definiamo come vengono visualizzati i numeri. Con l'uso del FORMATO IMMAGINE, possiamo superare più problemi di visualizzazione dei numeri come: –
1. Inserimento di decimali e virgole
2. Incorpora caratteri con numeri
3. prefissi
Esempio 1: – Voglio mostrare l'importo delle vendite che termina con un segno% e preceduto da un segno $.
Formato del processo;
Imagen New_fmt low-High = ‘000000%’ (Prefisso = '$');
Correre;
Elabora dati di stampa = Vendite;
Formato Salesamount New_fmt .;
Correre;
Produzione:
Esempio 2: – Diciamo, Ho un numero di telefono per 10 cifre e voglio visualizzarlo come 123-3456-789.
Telefono dati;
Contatto di ingresso;
linee dati;
1111111111
222222222
3333333333
;
Correre;
Formato del processo;
Tele basso-alto immagine = ‘000-0000-000 io;
Correre;
Proc stampa dati = Telefono;
Formato contatto telefonico .;
Correre;
Note finali: –
In questo articolo, abbiamo discusso vari metodi per visualizzare il formato dei valori dei dati utilizzando formati incorporati e definiti dall'utente. Abbiamo anche analizzato varie tecniche per definire i formati come intervalli, immagini, gestire i valori mancanti e i valori non corrispondenti utilizzando ALTRI. Abbiamo anche discusso dell'efficiente tecnica di fusione utilizzando PROC FORMAT. Questo dovrebbe essere tutto ciò di cui hai bisogno per essere un professionista con i formati SAS.
Non abbiamo trattato In-format durante la lettura di un set di dati non standard. Ne parleremo in uno dei nostri prossimi post..
Spero che questo articolo ti sia stato utile? Abbiamo semplificato questo argomento e abbiamo cercato di presentarlo in modo molto semplice e lucido. Se hai bisogno di ulteriore aiuto con il formato SAS, sentiti libero di fare le tue domande attraverso i commenti qui sotto.