SAS-programmering - Lær hvordan du koder i SAS!



Denne bloggen om SAS Programming introduserer deg for SAS programmeringskonsepter og hjelper deg med å forstå de forskjellige grunnleggende aspektene til SAS i detalj med eksempler.

I denne bloggen vil jeg introdusere deg for noen av de viktige konseptene i SAS-programmering. Før vi setter i gang er det viktig at du blir kjent med SAS. Min forrige blogg på SAS Tutorial vil hjelpe deg med å forstå SAS, dets applikasjoner og vil hjelpe deg med å installere SAS University Edition, som vi bruker her som et programmeringsmiljø. Lurer du på hva er ferdighetene, bør du mestre i år? Hvis du har planlagt å gå inn i Data Analytics, er en av de beste måtene å komme i gang med det samme.

Edureka 2019 Tech Career Guide er ute! De hotteste jobbrollene, presise læringsveiene, industriutsiktene og mer i guiden. nedlasting nå.





Så uten videreforsinkelse,la oss komme i gang med SAS-programmering, skal vi?

Denne bloggen vil hjelpe deg med å forstå følgende emner:



Før vi begynner å kode, vil jeg informere deg om noen viktige termer som er viktige for SAS-programmering.

Grunnleggende om SAS-programmering

SAS Windows

Store organisasjoner og opplæringsinstitutter foretrekker å bruke SAS Windows. SAS Windows har mange verktøy som hjelper til med å redusere tiden det tar å skrive koder.

Følgende bilde viser de forskjellige delene av SAS Windows.



SAS-Windows - SAS-programmering - Edureka

  • Loggvindu : Det er et utførelsesvindu. Her kan du sjekke gjennomføringen av programmet ditt. Det viser også feil, advarsler og merknader.
  • Kodevindu :Dette vinduet er også kjent som redigeringsvindu. Betrakt det som et blankt papir eller et notisblokk, der du kan skrive SAS-koden.
  • Utgangsvindu : Som navnet antyder, viser dette vinduet utdataene til programmet / koden du skriver i redigeringsprogrammet.
  • Resultatvindu : Det er en indeks som viser alle utgangene til programmer som kjøres i en økt. Siden det inneholder resultatene fra en bestemt økt, vil resultatvinduet være tomt hvis du lukker programvaren og starter den på nytt.
  • Utforsk Window : Den inneholder listen over alle bibliotekene i systemet. Du kan også bla gjennom systemstøttede filer her.

Noen få organisasjoner bruker Linux, men uten noe grafisk brukergrensesnitt må du skrive kode for hvert spørsmål. Derfor er det upraktisk å bruke.

SAS datasett

SAS-datasett kalles som datafiler. Datafiler består av rader og kolonner. Rader holder observasjoner og kolonner holderVariable navn.

SAS-variabler

SAS har to typer variabler:

  • Numeriske variabler : Dette er standardvariabeltypen. Disse variablene brukes i matematiske uttrykk.
  • Tegnvariabler :Tegnvariabler brukes til verdier som ikke brukes i matematiske uttrykk.
    De blir behandlet som tekst eller strenger. En variabel blir en tegnvariabel ved å legge til en‘$’ignpå slutten av variabelnavnet.

SAS biblioteker

SAS-biblioteket er en samling av SAS-filer som er lagret i samme mappe eller katalog på datamaskinen din.

  • Midlertidig bibliotek : I dette biblioteket blir datasettet slettet når SAS-økten avsluttes.
  • Permanent bibliotek : Datasett lagres permanent. Derfor er de tilgjengelige på tvers av økter.

Brukere kan også opprette eller definere et nytt bibliotek kjent som brukerdefinerte biblioteker ved å bruke nøkkelordet LIBNAME . Dette er også faste biblioteker.

SAS-programmering: SAS-kodestruktur

SAS-programmering er basert på to byggesteiner:

  • DATA trinn : DATA-trinnet oppretter et SAS-datasett og overfører deretter dataene til et PROC-trinn
  • PROC trinn : PROC-trinnet behandler dataene

Et SAS-program skal følge nedenstående regler:

  • Nesten hver kode begynner med enten DATA eller et PROC-trinn
  • Hver linje med SAS-kode slutter med en semikolon
  • En SAS-kode slutter med Nøkkelordet RUN eller QUIT
  • SAS-koder er ikke mellom store og små bokstaver
  • Du kan skrive en kode på tvers av forskjellige linjer, eller du kan skrive flere utsagn på en linje

Nå som vi har sett noen få grunnleggende terminologier, la oss komme i gang med SAS-programmering med denne grunnleggende koden:

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

I koden ovenfor opprettet vi et datasett kalt Employee_Info. Den har tre variabler, en numerisk variabel som Emp_Id og to tegnvariabler som Emp_Name og Emp_Verticals. Kjør-kommandoen viser datasettet i utdatavinduet.

Bildet nedenfor viser utdataene fra ovennevnte kode.

Anta at du vil se resultatet i utskriftsvisning, vel du kan gjøre det ved å bruke en PROC PRINT-prosedyre, resten av koden forblir den samme.

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

Bildet nedenfor viser utdataene fra ovennevnte kode.

Vi opprettet nettopp et datasett og forsto hvordan PRINT-prosedyren fungerer. La oss nå ta datasettet ovenfor og bruke det til videre programmering. La oss si at vi vil legge til ansattes dato for å bli med i datasettet. Så vi lager en variabel kalt DOJ, gir den som input og skriver ut resultatet.

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 Kjør PROC PRINT DATA = Employee_Info Run

Bildet nedenfor viser utdataene fra koden ovenfor. Det er synlig at en variabel ble opprettet, men verdien av DOJ ble ikke skrevet ut. I stedet ser vi at punkter har erstattet datoverdiene.


Hvorfor skjedde dette? Vel, DOJ-variabelen er uten suffikset ‘$’, det vil si at SAS som standard vil lese den som en numerisk variabel. Men dataene vi skrev inn har et spesialtegn ‘/’, og derfor blir det ikke skrevet ut siden det ikke er rent numeriske data. Hvis du sjekker loggvinduet, vil du se en feilmelding som 'ugyldige data for variabel DOJ'

Nå hvordan løser vi dette problemet? En måte å løse det på er å bruke et suffiks ‘$’ for DOJ-variabelen. Dette vil konvertere DOJ-variabelen til tegn, og du vil kunne skrive ut datoverdier. La oss gjøre endringene i koden og se utdataene.

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 Kjør PROC UTSKRIFTSDATA = Employee_Info Run

Utgangsskjermen viser følgende utgang.


Du kan se at dataverdiene vises som datoer ved å konvertere DOJ til tegn. Dette er imidlertid en midlertidig løsning. La meg forklare det hvordan?

Tenk deg at en bank har et lignende datasett. Datasettet har kontoinnehaverdetaljer som lånebeløp, avdrag,ogforfallsdato for avdrag på lån. Tenk deg, innehaveren har savnet fristen for å betale et avdrag, og banken vil beregne forsinkelsen. Banken må beregne forskjellen mellom fristdatoen og dagens dato.

Men hvis bankens datasett har datoer i tegnformat, vil ikke banken kunne utføre matematiske operasjoner på det. Dette problemet kan også påvirke datasettet vårt. Så hvordan løser vi dette problemet?

Det neste konseptet vil hjelpe deg med å løse dette problemet.

Informater og formater i SAS

Det er viktig at du forstår dette emnet godt hvis du vil være flink til SAS-programmering.Hvis du kan huske, nevnte jeg tidligere at SAS har to standardvariabeltyper:

  • Numerisk
  • Karakter

Når SAS kommer over ikke-standardvariabler, vil SAS kaste en feil, ellers får du ikke ønsket utdata. For å løse dette problemet bruker SASInformertog formater.

Finne ut mer

Informats brukes vanligvis til å lese eller legge inn data fra eksterne filer eller flate filer (som f.ekstekstfiler eller sekvensielle filer). Informaten instruerer SAS om hvordan man leserdata til SAS-variabler. SAS har tre typer informatikk:tegn, tall og dato / tid. Informats er navngitt i henhold til følgendesyntaksstruktur:

  • Tegninformat: $ INFORMATw.
  • Numerisk informert: INFORMATw.d
  • Informasjon om dato / tid: INFORMATw.

'$' Indikerer et tegninformat. INFORMAT refererer til det noen ganger valgfrieSAS informat navn. 'W' angir bredden (byte eller antall kolonner) påvariabel. ‘D’ brukes til numeriske data for å spesifisere antall sifre til høyre fordesimalplassen. Alle informater må inneholde et desimaltegn (.) Slik at SAS kan
skille en informatikk fra en SAS-variabel.

La oss gå tilbake til vår forrige kode og se om Date / Time Informat hjelper oss. Så la oss endre koden tilsvarende og legge til en Date Informat til den på følgende måte:

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 Run PROC PRINT DATA = Employee_Info Run

Linje nummer 3 i koden instruerer SAS om å lese i variabelen ‘date of joining’ (DOJ) ved hjelp av datoen
informat MMDDYYw. For hvert datofelt tar 10 mellomrom, er 'w.' Kvalifiseringensatt til 10.

Utgangen av koden vil se ut som følger.

Resultatet viser at vi fremdeles ikke har ønsket resultat, i stedet inneholder DOJ-kolonnen noen numeriske verdier og ikke datoene vi spesifiserte. Nå, hvorfor er det? Når en dato er lest med en datoinformasjon, lagrer SAS datoen som et tall. Det betyr at den blir lest som antall dager mellom datoen og 1. januar 1960 (for eksempel: 3/15/1994 er lagret som 12492).

Årsaken bak dette er at SAS har tre separate tellere som holder oversikt over datoer og klokkeslett. Disse datotellerne startet på null 1. januar 1960. Derfor har datoer før 1/1/1960 negative verdier, og enhver dato etter har en positiv verdi. Hver dag ved midnatt økes datotelleren med en.

En historie forteller at grunnleggerne av SAS ønsket å bruke den omtrentlige fødselsdatoen til IBM 370-systemet, og de valgte 1. januar 1960 som en lett å huske tilnærming.

Nå som du vet årsaken til at kolonnen DOJ viste disse tallene, la oss prøve å løse dette problemet. For å løse dette problemet bruker vi Format.

Format

Informat er instruksjonene for å lese data, mens formater er instruksjonene som brukes til å vise ellerutdata.Å definere et format for en variabel er hvordan du ber SAS om å vise verdiene i variabelen. Formater er gruppert i de samme tre klassene som informater (tegn, numerisk og dato) og inneholder også alltid en prikk.

Den generelle formen for en formaterklæring er:

  • FORMAT variabelnavn FORMAT-NAVN.

La oss gå tilbake til koden vår med datasettet Employee_Info for å se om vi kan vise datoen riktig ved hjelp av FORMAT-kommandoen.

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 Run PROC PRINT DATA = Employee_Info Run

Vi har brukt FORMAT-kommandoen i linje nummer 4 i koden ovenfor. Følgende utgangsskjermbilde gir oss ønsket utgang.

tablåopplæring trinn for trinn

Vi har vist datasettet ved hjelp av kommandoen Date format. Jeg håper du har forstått hvordan du bruker format og informatikk.La oss gå videre med SAS-programmeringsbloggen og se på et annet viktig konsept.

SAS Loops

Mens vi gjør SAS-programmering, kan vi støte på situasjoner der vi flere ganger trenger å utføre enkodeblokk flere ganger. Det er upraktisk å skrive det samme settet med uttalelser igjen og igjen. Det er her sløyfer kommer inn i bildet. I SAS brukes Do-uttalelsen til å implementere løkker. Det er også kjent som Do Loop. Bildet nedenfor visergenerell form for Do loop-uttalelsene i SAS.

Følgende er typene av DO-sløyfer i SAS:

  • Indeks : Sløyfen fortsetter fra startverdien til stoppverdien til indeksvariabelen.
  • Samtidig som : Sløyfen fortsetter så lenge som Samtidig som tilstand blir falsk.
  • Før : Sløyfen fortsetter til Før tilstand blir sann.

Gjør indeksløkke

Vi bruker en indeksvariabel som start- og stoppverdi for Gjør indeksløkke . SAS-uttalelsene kjøres gjentatte ganger til indeksvariabelen når sin endelige verdi.
Syntaks:

Gjør indeksvariabel = initialverdi til sluttverdi SAS-utsagn Slutt

La oss ta en titt på eksempelkoden for å forstå Do Index Loop. I koden nedenfor er VAR indeksvariabelen.

DATA SampleLoop SUM = 0 Gjør VAR = 1 til 10 SUM = SUM + VAR END PROC PRINT DATA = SampleLoop Run

Når du utfører koden ovenfor, får du følgende utdata.

sql server tutorial for nybegynnere

Gjør Mens Loop

De Gjør mens loop bruker en WHILE-tilstand. Denne sløyfen utfører kodeblokken når tilstanden er sant og fortsetter å utføre den til tilstanden blir falsk. Når tilstanden blir falsk, blir sløyfen avsluttet.

Syntaks:

Gjør mens (tilstand) SAS-uttalelser avsluttes

Å følge eksempler på kode vil hjelpe deg å forstå DO WHILE loop.

DATA SampleLoop SUM = 0 VAR = 1 Gjør mens (VAR<15) SUM = SUM + VAR VAR+1 END PROC PRINT DATA = SampleLoop Run 

Ovennevnte kode vil gi deg følgende utdata.

Gjør til løkken

Do Do-sløyfen bruker en Før Denne løkken utfører kodeblokken når tilstanden er falsk, og fortsetter å utføre den til tilstanden blir oppfylt. Når tilstanden blir oppfylt, blir sløyfen avsluttet.

Syntaks:

Gjør inntil (betingelse) SAS uttalelser SLUTT

La oss ta en titt på eksempelprogrammet.

DATA SampleLoop SUM = 0 VAR = 1 Do Before (VAR> 15) SUM = SUM + VAR VAR + 1 END PROC PRINT Run

Koden har følgende utgang.

Dermed er vi ferdig med begrepet looper i SAS-programmering. Alle temaene vi har studert til nå har snakket om det grunnleggende om SAS-programmering generelt.

La oss nå se på noen statistiske prosedyrer. Disse prosedyrene vil danne en base for avanserte analytiske prosedyrer.

Abonner på youtube-kanalen vår for å få nye oppdateringer ..!

Grunnleggende statistiske prosedyrer ved bruk av SAS

PROC BETYR

Denne prosedyren brukes til å beregne aritmetisk gjennomsnitt og standardavvik. For folk som ikke er statistiske, kan det være vanskelig å forstå disse begrepene. Så før vi begynner å kode og bruker denne prosedyren. Jeg vil prøve å forklare hva disse begrepene betyr.

La oss starte med aritmetisk gjennomsnitt og se hvordan PROC MEANS brukes i SAS-programmering for å beregne det.

Aritmetisk gjennomsnitt

Summen av verdien av numeriske variabler, delt på antall variabler gir deg aritmetisk gjennomsnitt . Det er også kjent som middel og er et mål på sentral tendens. Et mål på sentral tendens er en enkelt verdi som prøver å beskrive et datasett ved å identifisere den sentrale posisjonen i det datasettet.

I SAS-programmering bruker du PROC MEANS for å beregne det aritmetiske gjennomsnittet. Denne prosedyren lar deg finne gjennomsnitt av alle variabler eller få variabler i et datasett. Du kan også danne grupper og beregne gjennomsnittet av variabler som er spesifikke for den gruppen.

Syntaks:

PROC BETYDER DATA = DATASET Klassevariabler Var variabler
  • Variabler : Variabler i syntaksen ovenfor indikerer variabler fra datasettet hvis gjennomsnitt skal beregnes.

Gjennomsnitt av et datasett

Hvis dubare gi datasettnavnet uten variabler, kan du beregne gjennomsnittet av alle variablene i et datasett.

La oss ta en titt på en eksempelkode. Jeg har vurdert et forhåndsdefinert SAS-datasett kalt ‘biler’. Følgende kommando viser datasettet.

PROC PRINT data = sashelp.CARS Run

Bildet nedenfor viser utdataene fra ovennevnte kode.


La oss nå bruke denne datasettkoden og beregne gjennomsnittet for hver variabel i datasettet'biler'.

PROC BETYDER DATA = sashelp.CARS Gjennomsnitt SUM MAXDEC = 2 Kjør

Bildet nedenfor viser gjennomsnittet av alle variablene i datasettet opp til to desimaler.

Gjennomsnitt av utvalgte variabler

Ved å oppgi navnene i alternativet Var kan du få gjennomsnittet av de angitte variablene. Se koden nedenfor.

PROC BETYDER DATA = sashelp.CARS betyr SUM MAXDEC = 2 var hestekrefter sylindere

Mean By Class

Du kan finne gjennomsnittet av de numeriske variablene ved å organisere dem i grupper ved hjelp avnoen parameter for å gruppere dem.Vurder å følge eksempler på kode. La oss finne ut gjennomsnittet av hestekrefter for forskjellige grupper kategorisert etter klassene 'make' og 'type' av forskjellige biler.

PROC BETYDER DATA = sashelp.BILER BETYDER SUM MAXDEC = 2 klasse merke type var hestekrefter

Bildet nedenfor viser utdataene fra koden ovenfor.

La oss fortsette med vår SAS-programmeringsblogg og se på et annet viktig statistisk konsept.

Standardavvik

Standardavvik (SD) er et mål på hvor varierte dataene er i et gitt datasett. Matematisk forteller den hvor nær hvert datapunkt er middelverdien til et datasett. Hvis verdien av standardavvik er nær 0, indikerer det at datapunktene er veldig nær gjennomsnittet av datasettet, og et høyt standardavvik indikerer at datapunktene er spredt over et bredt spekter av verdier.

I SAS kan du beregne verdien av standardavvik ved hjelp av to prosedyrer. De er:

  • PROC BETYR
  • UNDERSØKELSER

Standardavvik ved bruk av PROC-MIDLER

Du kan måle standardavviket ved hjelp av proc-midler, du må velge TIMER alternativet i PROC-trinnet. Den viser standardavviksverdiene for hver numeriske variabel i datasettet.

Syntaks:

PROC BETYDER DATA = datasett STD

Vurder denne eksempelkoden, la oss lage et nytt datasett CARS1 fra CARS-datasettet i SASHELP-biblioteket. For å gjøre dette lar vi oss bruke PROC SQL-prosedyren. La oss gruppere dataene ved hjelp av 'type' og 'make' av biler og beregne standardavvik for utvalgte variabler ved hjelp av STD-alternativet med trinnet PROC betyr.

PROC SQL opprett tabell CARS1 som SELECT make, type, hestekrefter, sylindere, vekt FRA SASHELP.CARS WHERE make in ('Audi', 'BMW') KJØR PROC MIDLER DATA = CARS1 STD Run

Ovennevnte kode vil gi standardavvik for utvalgte variabler. Følgende bilde viser utdataene.

PROC-UNDERSØKELSER

Denne prosedyren brukes til å måle standardavvik sammen med noen forhåndsfunksjoner som å måle standardavvik for kategoriske variabler og avvik.

Syntaks:

PROC UNDERVISNINGER alternativer statistikk-nøkkelord Etter variabler Klassevariabler Var variabler

Følgende er beskrivelsen av parametrene som brukes:

  • Av brukes til å indikere variablene som brukes til å lage grupper av observasjoner.
  • Klasse indikerer variablene som brukes til kategoriske variabler.
  • Hvor indikerer variablene som SD skal beregnes for.

La oss ta en titt på denne eksempelkoden som beskriver bruken av klasseparameteren, som lager statistikken for hver av verdiene i klassevariabelen.

PROC SURVEYMEANS DATA = CARS1 STD Klassetype Var type hestekrefter ods utdata statistikk = rektangel Kjør PROC SKRIV DATA = rektangel Kjør

Bildene nedenfor viser utdataene fra koden ovenfor. Den viser distribusjon av data for variabel 'Hestekrefter' for 95% konfidensintervall. (Konfidensintervall betyr et verdiområde som er definert slik at det er en spesifisert sannsynlighet for at verdien til en parameter ligger innenfor den.)

Så det fører oss til slutten av SAS-programmeringsbloggen. For tvil eller problemer med innholdet i bloggen, vær så snill å la dem være i kommentarfeltet, jeg vil løse dem tidligst og svare tilbake.

Hvis du ønsker å lære SAS og bygge en karriere i analytics-domenet, kan du sjekke ut vårt som kommer med instruktørledet live-opplæring og reell prosjektopplevelse. Denne opplæringen vil hjelpe deg å forstå SAS i dybden og hjelpe deg med å mestre ulike konsepter i SAS programmeringsspråk.

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet, så kommer vi tilbake til deg.