Programació SAS: apreneu a codificar a SAS.



Aquest bloc sobre programació SAS us presenta conceptes de programació SAS i us ajuda a comprendre els diversos fonaments de SAS amb detalls amb exemples.

En aquest bloc, us presentaré alguns dels conceptes importants de la programació SAS. Abans de començar, és important que us familiaritzeu amb SAS. El meu bloc anterior a SAS Tutorial us ajudarà a comprendre SAS, les seves aplicacions i us ajudarà a instal·lar SAS University Edition, que faríem servir aquí com a entorn de programació. Us pregunteu quines són les habilitats que hauríeu de dominar aquest any? A més, si teniu previst entrar a Data Analytics, és una de les millors maneres de començar amb el mateix.

S'ha publicat la Guia professional d'Edureka 2019! Rols laborals més destacats, camins d'aprenentatge precisos, perspectives del sector i molt més a la guia. descarregar ara.





Així doncs, sense mésretard,comencem amb la programació SAS, oi?

java què és una variable d'instància

Aquest bloc us ajudarà a entendre els temes següents:



Abans de començar a codificar, m'agradaria informar-vos amb alguns termes importants que són importants per a la programació SAS.

Fonaments de la programació SAS

Windows SAS

Les grans organitzacions i instituts de formació prefereixen utilitzar SAS Windows. SAS Windows té moltes utilitats que ajuden a reduir el temps necessari per escriure codis.

La imatge següent mostra les diferents parts del Windows SAS.



SAS-Windows - Programació SAS - Edureka

  • Finestra de registre : És una finestra d'execució. Aquí podeu comprovar l'execució del vostre programa. També mostra errors, advertències i notes.
  • Finestra de codi :Aquesta finestra també es coneix com a finestra de l'editor. Considereu-lo com un paper en blanc o un bloc de notes, on podeu escriure el vostre codi SAS.
  • Finestra de sortida : Com el seu nom indica, aquesta finestra mostra la sortida del programa / codi que escriviu a l'editor.
  • Finestra de resultats : És un índex que llista tots els resultats dels programes que s'executen en una sessió. Com que conté els resultats d'una sessió concreta, si tanqueu el programari i el reinicieu, la finestra de resultats quedarà buida.
  • Explorar Window : Conté la llista de totes les biblioteques del sistema. També podeu navegar pels fitxers compatibles amb el sistema aquí.

Algunes organitzacions utilitzen Linux, però, sense interfície gràfica d'usuari, heu d'escriure codi per a cada consulta. Per tant, és incòmode d'utilitzar.

Conjunts de dades SAS

Els conjunts de dades SAS s’anomenen fitxers de dades. Els fitxers de dades constitueixen files i columnes. Les files contenen observacions i les columnesNoms de variables.

SAS Variables

SAS té dos tipus de variables:

  • Variables numèriques : Aquest és el tipus de variable per defecte. Aquestes variables s’utilitzen en expressions matemàtiques.
  • Variables de caràcters :Les variables de caràcters s’utilitzen per a valors que no s’utilitzen en expressions matemàtiques.
    Es tracten com a text o cadenes. Una variable es converteix en una variable de caràcter afegint un fitxer'$'ignal final del nom de la variable.

Biblioteques SAS

La biblioteca SAS és una col·lecció de fitxers SAS que s’emmagatzemen a la mateixa carpeta o directori de l’ordinador.

  • Biblioteca temporal : En aquesta biblioteca, el conjunt de dades s'esborra quan finalitza la sessió SAS.
  • Biblioteca permanent : Els conjunts de dades es guarden permanentment. Per tant, estan disponibles en totes les sessions.

Els usuaris també poden crear o definir una nova biblioteca coneguda com a biblioteques definides per l'usuari mitjançant la paraula clau LIBNAME . També són biblioteques permanents.

Programació SAS: estructura del codi SAS

La programació SAS es basa en dos blocs bàsics:

  • Pas DATA : El pas DATA crea un conjunt de dades SAS i, a continuació, passa les dades a un pas PROC
  • Pas PROC : El pas PROC processa les dades

Un programa SAS hauria de seguir les regles esmentades a continuació:

  • Gairebé tots els codis començaran per DATA o per un pas PROC
  • Cada línia de codi SAS acaba amb un punt i coma
  • Un codi SAS acaba amb la paraula clau RUN o QUIT
  • Els codis SAS no distingeixen entre majúscules i minúscules
  • Podeu escriure un codi a través de diferents línies o podeu escriure diverses afirmacions en una línia

Ara que hem vist algunes terminologies bàsiques, comencem amb la programació SAS amb aquest codi bàsic:

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ datalines 101 Mak SQL 102 Rama SAS 103 Priya Java 104 Karthik Excel 105 Mandeep SAS Run

Al codi anterior, vam crear un conjunt de dades anomenat Employee_Info. Té tres variables, una variable numèrica com Emp_Id i dues variables de caràcters com Emp_Name i Emp_Verticals. L'ordre Executa mostra el conjunt de dades a la finestra de sortida.

La imatge següent mostra la sortida del codi esmentat anteriorment.

Suposem que voleu veure el resultat a la vista d’impressió; bé, podeu fer-ho mitjançant un procediment PROC PRINT, la resta del codi continua sent el mateix.

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ datalines 101 Mak SQL 102 Rama SAS 103 Priya Java 104 Karthik Excel 105 Mandeep SAS Run PROC PRINT DATA = Employee_Info Run

La imatge següent mostra la sortida del codi anterior.

Acabem de crear un conjunt de dades i entendre el funcionament del procediment PRINT. Ara, prenem el conjunt de dades anterior i l’utilitzem per a una major programació. Suposem que volem afegir la data d’adhesió dels empleats al conjunt de dades. Així doncs, creem una variable anomenada DOJ, la donem com a entrada i imprimim el resultat.

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ datalines 101 Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007 105 Mandeep SAS 11/09/2016 Executeu PROC PRINT DATA = Execució d'Informació_Empleat

La imatge següent mostra la sortida del codi anterior. És visible que es va crear una variable, però no es va imprimir el valor de DOJ. En canvi, veiem que els punts han substituït els valors de la data.


Per què va passar això? Bé, la variable DOJ no té el sufix '$', això vol dir que per defecte SAS la llegirà com a variable numèrica. Però, les dades que hem introduït tenen un caràcter especial '/', per tant no imprimeix el resultat ja que no són dades purament numèriques. Si marqueu la finestra de registre, veureu un missatge d'error com a 'dades no vàlides per a la variable DOJ'

Ara, com solucionem aquest problema? Bé, una manera de resoldre-ho és mitjançant un sufix ‘$’ per a la variable DOJ. Això convertirà la variable DOJ en caràcter i podreu imprimir valors de data. Fem els canvis al codi i vegem la sortida.

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ $ datalines 101 Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007 105 Mandeep SAS 11/09 / 2016 Execució PROC PRINT DATA = Execució d’informació_empleat

La pantalla de sortida mostrarà la següent sortida.


Podeu veure que els valors de les dades es mostren com a dates convertint DOJ en caràcter. Tot i això, es tracta d’una solució temporal. Deixeu-me explicar-ho com?

Bé, imaginem que un banc té un conjunt de dades similar. El conjunt de dades conté detalls del titular del compte com l'import del préstec, les quotes,idata de venciment de la quota del préstec. Imagineu que el titular ha perdut el termini per pagar una quota i el banc vol calcular el retard. El banc haurà de calcular la diferència entre la data límit i la data actual.

Però, si el conjunt de dades del banc té dates en format de caràcters, el banc no podrà fer-hi operacions matemàtiques. Aquest problema també pot afectar el nostre conjunt de dades. Llavors, com solucionem aquest problema?

El següent concepte us ajudarà a superar aquest problema.

Informats i formats a SAS

És important que entengueu bé aquest tema si voleu ser bons en la programació SAS.Si recordeu, he esmentat anteriorment que SAS té dos tipus de variables estàndard:

  • Numèric
  • Personatge

Quan SAS es troba amb variables no estàndard, SAS generarà un error o no obtindreu la sortida desitjada. Per superar aquest problema, SAS utilitzaInformatsi formats.

Informat

Els informats s’utilitzen normalment per llegir o introduir dades de fitxers externs o fitxers plans (com arafitxers de text o fitxers seqüencials). L'informador dóna instruccions a SAS sobre com llegirdades en variables SAS. SAS té tres tipus d’informats:caràcter, numèric i data / hora. Els informats s’anomenen segons el següentestructura de sintaxi:

  • Character Informat: $INFORMATw.
  • Informat numèric: INFORMATw.d
  • Data / hora informada: INFORMATw.

El '$' indica una informació de caràcter. INFORMAT fa referència a allò que de vegades és opcionalNom informàtic SAS. La 'w' indica l'amplada (bytes o nombre de columnes) del fitxervariable. La 'd' s'utilitza per a dades numèriques per especificar el nombre de dígits a la dreta dela posició decimal. Tots els informatius han de contenir un punt decimal (.) Perquè SAS pugui
diferenciar una informàtica d’una variable SAS.

Tornem al nostre codi anterior i comprovem si Data / Time Informat ens ajuda. Canvieu el codi en conseqüència i afegim-hi un Informe de data de la manera següent:

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ INFORMAT DOJ ddmmyy10. datalines 101 Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007 105 Mandeep SAS 11/09/2016 Execució PROC PRINT DATA = Employee_Info Run

La línia número 3 del codi indica a SAS que llegeixi la variable ‘data d’adhesió’ (DOJ) mitjançant la data
informat MMDDYYw. Per a cada data, el camp ocupa 10 espais, el qualificatiu 'w' éss'estableix a 10.

La sortida del codi tindria l’aspecte següent.

El resultat mostra que encara no tenim el resultat desitjat; en canvi, la columna DOJ conté alguns valors numèrics i no les dates que hem especificat. Ara bé, per què és això? Bé, una vegada que es llegeix una data amb un informat de data, SAS emmagatzema la data com a número. Això vol dir que es llegeix com el nombre de dies entre la data i l'1 de gener de 1960 (per exemple: 15/03/1994 s'emmagatzema com a 12492).

La raó darrere d'això és que SAS té tres comptadors separats que fan un seguiment de les dates i l'hora. Aquests comptadors de dates van començar a zero l’1 de gener de 1960. Per tant, les dates anteriors a l’1 de gener de 1960 tenen valors negatius i qualsevol data posterior té un valor positiu. Cada dia a mitjanit, el comptador de dates s'incrementa en un.

Una història diu que els fundadors de SAS volien utilitzar la data de naixement aproximada del sistema IBM 370 i van escollir l'1 de gener de 1960 com una aproximació fàcil de recordar.

Ara que ja sabeu el motiu pel qual la columna DOJ mostrava aquests números, intentem resoldre aquest problema. Per superar aquest problema, fem servir Format.

Format

Els informats són les instruccions per llegir dades, mentre que els formats són les instruccions que s’utilitzen per mostrar odades de sortida.Definir un format per a una variable és com li indiqueu a SAS que mostri els valors de la variable. Els formats s’agrupen en les mateixes tres classes que els formats (caràcters, numèrics i data-hora) i també contenen sempre un punt.

La forma general d'una declaració de format és:

  • FORMAT nom de variable FORMAT-NAME.

Tornem al nostre codi amb el conjunt de dades Employee_Info per veure si podem mostrar la data correctament mitjançant l'ordre FORMAT.

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ INFORMAT DOJ ddmmyy10. FORMAT DOJ ddmmyy10. datalines 101 Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007 105 Mandeep SAS 11/09/2016 Execució PROC PRINT DATA = Employee_Info Run

Hem utilitzat l'ordre FORMAT a la línia número 4 del codi anterior. La següent pantalla de sortida ens donarà la sortida desitjada.

Hem visualitzat correctament el conjunt de dades mitjançant l’ordre Format de data. Espero que hagueu entès com s'utilitza el format i la informàtica.Continuem amb el nostre bloc de programació SAS i fem un cop d'ull a un altre concepte important.

Bucles SAS

Mentre fem la programació SAS, ens podem trobar amb situacions en què necessitem executar repetidament un fitxerbloc de codi diverses vegades. És incòmode escriure el mateix conjunt d’afirmacions una i altra vegada. Aquí és on apareixen els bucles. A SAS, la sentència Do s’utilitza per implementar bucles. També es coneix com Do Loop. La imatge següent mostra el fitxerforma general de les instruccions Do loop de SAS.

A continuació es detallen els tipus de bucles DO a SAS:

  • Índex : El bucle continua des del valor inicial fins al valor de parada de la variable índex.
  • Mentre : El bucle continua mentre el fitxer Mentre la condició esdevé falsa.
  • Fins al : El bucle continua fins al Fins al condició es converteix en veritable.

Fer un bucle d’índex

Utilitzem una variable d’índex com a valor d’inici i aturada de Fer un bucle d’índex . Les sentències SAS s'executen repetidament fins que la variable índex assoleix el seu valor final.
Sintaxi:

Feu indexvariable = valor inicial a les instruccions SAS finalvalue Final

Fem una ullada al codi de mostra per entendre Do Index Loop. Al codi següent, VAR és la variable d'índex.

DADES SampleLoop SUM = 0 Feu VAR = 1 a 10 SUM = SUM + VAR END PROC PRINT DATA = SampleLoop Run

Quan executeu el codi anterior, obtindreu la següent sortida.

Fes un bucle

El Fer mentre loop utilitza una condició WHILE. Aquest bucle executa el bloc de codi quan la condició és certa i continua executant-lo fins que la condició es converteixi en falsa. Un cop la condició es fa falsa, el bucle s’acaba.

Sintaxi:

Les declaracions SAS Do While (condició) acaben

Seguir el codi de mostra us ajudarà a entendre el bucle DO WHILE.

DATA SampleLoop SUM = 0 VAR = 1 Feu-ho mentre (VAR<15) SUM = SUM + VAR VAR+1 END PROC PRINT DATA = SampleLoop Run 

El codi anterior us proporcionarà la següent sortida.

Fes fins a bucle

El bucle Do Until utilitza un fitxer Fins al condició: aquest bucle executa el bloc de codi quan la condició és falsa i es continua executant fins que la condició es converteix en certa. Un cop la condició es compleix, el bucle finalitza.

Sintaxi:

Fer fins que (condició) les declaracions SAS FINALITZEN

Fem una ullada al programa de mostra.

DADES SampleLoop SUM = 0 VAR = 1 Feu fins a (VAR> 15) SUM = SUM + VAR VAR + 1 END PROC PRINT Run

El codi té la següent sortida.

Així hem acabat el concepte de bucles en la programació SAS. Tots els temes que hem estudiat fins ara han parlat dels conceptes bàsics de la programació SAS en general.

Vegem ara alguns procediments estadístics. Aquests procediments constituiran una base per a avançats procediments analítics.

Subscriu-te al nostre canal de youtube per obtenir noves actualitzacions ..!

Procediments estadístics bàsics mitjançant SAS

MITJANS PROC

Aquest procediment s’utilitza per calcular la mitjana aritmètica i la desviació estàndard. Per a les persones que són noves en estadístiques, pot ser que sigui difícil entendre aquests termes. Per tant, abans de començar a codificar i utilitzar aquest procediment. Intentaré explicar què signifiquen aquests termes.

Comencem per la mitjana aritmètica i veiem com s’utilitza PROC MEANS a la programació SAS per calcular-lo.

Mitjana aritmètica

La suma del valor de les variables numèriques, dividida pel nombre de variables, us proporciona mitjana aritmètica . També es coneix com a mitjana i és una mesura de tendència central. Una mesura de tendència central és un valor únic que intenta descriure un conjunt de dades identificant la posició central dins d’aquest conjunt de dades.

A la programació SAS, utilitzeu PROC MEANS per calcular la mitjana aritmètica. Aquest procediment us permet trobar la mitjana de totes les variables o algunes variables d'un conjunt de dades. També podeu formar grups i calcular la mitjana de variables específiques d’aquest grup.

Sintaxi:

DADES DE MEDI DE PROC = DATASET Variables de classe Variables variables
  • variables : Les variables de la sintaxi anterior indiquen variables del conjunt de dades la mitjana de les quals s'ha de calcular.

Mitjana d'un conjunt de dades

Si tuproporcioneu només el nom del conjunt de dades sense cap variable, podeu calcular la mitjana de totes les variables d’un conjunt de dades.

Vegem un codi de mostra. He considerat un conjunt de dades SAS predefinit anomenat 'cotxes'. L'ordre següent mostrarà el conjunt de dades.

PROC PRINT data = sashelp.CARS Run

La imatge següent mostra la sortida del codi anterior.


Ara fem servir aquest codi del conjunt de dades i calculem la mitjana de cada variable del conjunt de dades‘Cotxes’.

PROC SIGNIFICA DADES = sashelp.CARS Mean SUM MAXDEC = 2 Run

La imatge següent mostra la mitjana de totes les variables del conjunt de dades fins a dos decimals.

Mitjana de variables seleccionades

En proporcionar els noms a l’opció Var, podeu obtenir la mitjana de les variables especificades. Consulteu el codi següent.

PROC SIGNIFICA DADES = sashelp.CARS significa SUM MAXDEC = 2 var de potència de cilindres Run

Mitjana per classe

Podeu trobar la mitjana de les variables numèriques organitzant-les en grups mitjançantalgun paràmetre per agrupar-los.Penseu en la possibilitat de seguir el codi de mostra. Esbrinem la mitjana de potència de diferents grups classificats per les classes de 'marca' i 'tipus' de diferents cotxes.

PROC MEANS DATA = sashelp.CARS MEYS SUM MAXDEC = 2 class make type var horsepower Run

La imatge següent mostra la sortida del codi anterior.

Continuem amb el nostre bloc de programació SAS i fem un cop d'ull a un altre concepte estadístic important.

Desviació estàndar

La desviació estàndard (SD) és una mesura de la variació de les dades d’un conjunt de dades determinat. Matemàticament, us indica quina distància tenen cada punt de dades del valor mitjà d’un conjunt de dades. Si el valor de la desviació estàndard és proper a 0, indica que els punts de dades estan molt a prop de la mitjana del conjunt de dades i una desviació estàndard elevada indica que els punts de dades es distribueixen en un ampli rang de valors.

A SAS, podeu calcular el valor de la desviació estàndard mitjançant dos procediments. Ells són:

  • MITJANS PROC
  • ENQUESES

Desviació estàndard mitjançant mitjans PROC

Podeu mesurar la desviació estàndard mitjançant mitjans proc, heu de triar el HORES opció al pas PROC. Es mostraran els valors de desviació estàndard per a cada variable numèrica del conjunt de dades.

Sintaxi:

PROC MEANS DATA = conjunt de dades STD

Penseu en aquest codi de mostra, creem un altre conjunt de dades CARS1 a partir del conjunt de dades CARS de la biblioteca SASHELP. Per fer-ho, ens permetrà utilitzar el procediment SQL PROC. Agrupem les dades mitjançant 'tipus' i 'marca' de vehicles i calculem la desviació estàndard de les variables seleccionades mitjançant l'opció STD amb el pas PROC significa.

PROC SQL crea la taula CARS1 com a marca SELECT, tipus, potència, cilindres, pes DES DE SASHELP.CARS WHERE make in ('Audi', 'BMW') RUN PROC MEKS DATA = CARS1 STD Run

El codi anterior donarà una desviació estàndard per a les variables seleccionades. La imatge següent mostra la sortida.

ENQUISES PROC

Aquest procediment s'utilitza per mesurar la desviació estàndard juntament amb algunes característiques avançades com mesurar la desviació estàndard per a variables categòriques i la variància.

Sintaxi:

PROC SURVEYMEANS opcions estadístiques-paraules clau Per variables Variables de classe Variables var

A continuació es descriu els paràmetres utilitzats:

  • Per s’utilitza per indicar les variables que s’utilitzen per crear grups d’observacions.
  • Classe indica les variables utilitzades per a variables categòriques.
  • On indica les variables per a les quals es calcularà la SD.

Vegem aquest codi de mostra que descriu l’ús del paràmetre de classe, que crea les estadístiques de cadascun dels valors de la variable de classe.

PROC SURVEYMEANS DATA = CARS1 STD Tipus de classe Var tipus de potència ods estadístiques de sortida = rectangle Execució PROC PRINT DATA = rectangle Execució

Les imatges següents mostren la sortida del codi anterior. Mostra la distribució de dades de la variable 'Potència' per a un interval de confiança del 95%. (L'interval de confiança significa un interval de valors definits de manera que hi ha una probabilitat especificada que el valor d'un paràmetre estigui dins d'ell).

Per tant, això ens porta al final del bloc de programació SAS. Per a qualsevol dubte o problema amb el contingut del bloc, deixeu-los a la secció de comentaris, els resoldré al més aviat possible i us respondré.

Si voleu aprendre SAS i construir una carrera en el domini de l’anàlisi, consulteu el nostre que inclou formació en directe dirigida per un instructor i experiència en projectes reals. Aquesta formació us ajudarà a comprendre SAS a fons i us ajudarà a dominar diversos conceptes del llenguatge de programació SAS.

Tens alguna pregunta? Esmenta’l a la secció de comentaris i et respondrem.