SAS-programmering - Lær at kode i SAS!

Denne blog om SAS Programmering introducerer dig til SAS programmeringskoncepter og hjælper dig med at forstå de forskellige fundamentale aspekter af SAS i detaljer med eksempler.

I denne blog vil jeg introducere dig til nogle af de vigtige koncepter i SAS programmering. Før vi kommer i gang, er det vigtigt, at du bliver fortrolig med SAS. Min tidligere blog på SAS vejledning vil hjælpe dig med at forstå SAS, dets applikationer og vil hjælpe dig med at installere SAS University Edition, som vi ville bruge her som et programmeringsmiljø. Spekulerer på hvad er de færdigheder, du skal mestre i år? Også, hvis du har planlagt at gå ind i Data Analytics, er en af ​​de bedste måder at komme i gang med det samme.



Edureka 2019 Tech Career Guide er ude! De hotteste jobroller, præcise læringsveje, industriudsigter og mere i guiden. Hent nu.



Så uden videreforsinke,lad os komme i gang med SAS-programmering, skal vi?

Denne blog hjælper dig med at forstå følgende emner:



Inden vi begynder at kode, vil jeg gerne orientere dig om nogle få vigtige udtryk, der er vigtige for SAS-programmering.

Grundlæggende om SAS programmering

SAS Windows

Store organisationer og uddannelsesinstitutter foretrækker at bruge SAS Windows. SAS Windows har mange værktøjer, der hjælper med at reducere den tid, der kræves til at skrive koder.

Det følgende billede viser de forskellige dele af SAS Windows.



SAS-Windows - SAS-programmering - Edureka

  • Logvindue : Det er et udførelsesvindue. Her kan du kontrollere udførelsen af ​​dit program. Det viser også fejl, advarsler og noter.
  • Kodevindue :Dette vindue er også kendt som editor-vindue. Overvej det som et blankt papir eller et notesblok, hvor du kan skrive din SAS-kode.
  • Output-vindue : Som navnet antyder, viser dette vindue output af programmet / koden, som du skriver i editoren.
  • Resultatvindue : Det er et indeks, der viser alle output fra programmer, der køres i en session. Da det indeholder resultaterne af en bestemt session, vil resultatvinduet være tomt, hvis du lukker softwaren og genstarter den.
  • Udforsk Window : Den indeholder listen over alle bibliotekerne i systemet. Du kan også gennemse de systemunderstøttede filer her.

Et par organisationer bruger Linux, men uden nogen grafisk brugergrænseflade skal du skrive kode til hver forespørgsel. Derfor er det ubelejligt at bruge.

SAS datasæt

SAS-datasæt kaldes som datafiler. Datafiler består af rækker og kolonner. Rækker holder observationer og kolonner holderVariable navne.

SAS-variabler

SAS har to typer variabler:

  • Numeriske variabler : Dette er standardvariabeltypen. Disse variabler bruges i matematiske udtryk.
  • Tegnvariabler :Tegnvariabler bruges til værdier, der ikke bruges i matematiske udtryk.
    De behandles som tekst eller strenge. En variabel bliver en tegnvariabel ved at tilføje en'$' Signi slutningen af ​​variabelnavnet.

SAS Biblioteker

SAS-bibliotek er en samling af SAS-filer, der er gemt i samme mappe eller bibliotek på din computer.

  • Midlertidigt bibliotek : I dette bibliotek slettes datasættet, når SAS-sessionen slutter.
  • Permanent bibliotek : Datasæt gemmes permanent. Derfor er de tilgængelige på tværs af sessioner.

Brugere kan også oprette eller definere et nyt bibliotek kendt som brugerdefinerede biblioteker ved hjælp af nøgleordet LIBNAME . Disse er også permanente biblioteker.

SAS-programmering: SAS-kodestruktur

SAS programmering er baseret på to byggesten:

  • DATA trin : DATA-trinnet opretter et SAS-datasæt og videregiver derefter dataene til et PROC-trin
  • PROC trin : PROC-trinnet behandler dataene

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

  • Næsten hver kode begynder med enten DATA eller et PROC-trin
  • Hver linje med SAS-kode slutter med en semikolon
  • En SAS-kode slutter med nøgleordet RUN eller QUIT
  • SAS-koder er ikke store og små bogstaver
  • Du kan skrive en kode på tværs af forskellige linjer, eller du kan skrive flere udsagn på en linje

Nu hvor vi har set et par grundlæggende terminologier, lad os komme i gang med SAS-programmering med denne grundlæggende kode:

DATA Medarbejder_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 ovenstående kode oprettede vi et datasæt kaldet Employee_Info. Den har tre variabler, en numerisk variabel som Emp_Id og to karaktervariabler som Emp_Name og Emp_Verticals. Kommandoen Kør viser datasættet i outputvinduet.

Billedet nedenfor viser output fra ovennævnte kode.

Antag at du vil se resultatet i udskrivningsvisning, det kan du også gøre ved at bruge en PROC PRINT-procedure, resten af ​​koden forbliver 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

Billedet nedenfor viser output fra ovenstående kode.

Vi oprettede netop et datasæt og forstod, hvordan PRINT-proceduren fungerer. Lad os nu tage ovenstående datasæt og bruge det til yderligere programmering. Lad os sige, at vi vil føje medarbejderens dato for tilmelding til datasættet. Så vi opretter en variabel kaldet DOJ, giver den som input og udskriver 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 Kør PROC PRINT DATA = Employee_Info Run

Billedet nedenfor viser output fra ovenstående kode. Det er synligt, at en variabel blev oprettet, men værdien af ​​DOJ blev ikke udskrevet. I stedet ser vi prikker har erstattet datoværdierne.


Hvorfor skete dette? Nå, DOJ-variablen er uden et suffiks '$', det betyder, at SAS som standard læser den som en numerisk variabel. Men de data, vi indtastede, har et specialtegn '/', og derfor udskrives ikke resultatet, da det ikke er rent numeriske data. Hvis du tjekker logvinduet, vil du se en fejlmeddelelse som 'ugyldige data for variabel DOJ'

forskel mellem overbelastning og tilsidesættelse i java

Nu hvordan løser vi dette problem? En måde at løse det på er ved at bruge et suffiks '$' til DOJ-variablen. Dette konverterer DOJ-variablen til tegn, og du kan udskrive datoværdier. Lad os foretage ændringer af koden og se output.

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

Udgangsskærmen viser følgende output.


Du kan se, at dataværdierne vises som datoer ved at konvertere DOJ til tegn. Dette er imidlertid en midlertidig løsning. Lad mig forklare det hvordan?

Forestil dig, at en bank har et lignende datasæt. Datasættet har kontohaveroplysninger som lånebeløb, afdrag,ogforfaldsdato for afdrag på lån. Forestil dig, indehaveren har savnet sin frist til at betale en rate, og banken ønsker at beregne forsinkelsen. Banken skal beregne forskellen mellem deadline og den aktuelle dato.

Men hvis bankens datasæt har datoer i tegnformat, kan banken ikke udføre matematiske operationer på det. Dette problem kan også påvirke vores datasæt. Så hvordan løser vi dette problem?

Det næste koncept hjælper dig med at løse dette problem.

Informater og formater i SAS

Det er vigtigt, at du forstår dette emne godt, hvis du vil være god til SAS programmering.Hvis du kan huske, nævnte jeg tidligere, at SAS har to standardvariabeltyper:

  • Numerisk
  • Karakter

Når SAS støder på ikke-standardvariabler, kaster SAS en fejl, ellers får du ikke den ønskede output. For at løse dette problem bruger SASInformeretog formater.

Find ud af mere

Informats bruges typisk til at læse eller indtaste data fra eksterne filer eller flade filer (f.ekstekstfiler eller sekventielle filer). Informaten instruerer SAS om, hvordan man læserdata til SAS-variabler. SAS har tre typer informatik:tegn, tal og dato / tid. Informater navngives efter følgendesyntaks struktur:

  • Tegninformat: $ INFORMATw.
  • Numerisk informeret: INFORMATw.d
  • Dato / tid informeret: INFORMATw.

'$' Angiver et tegninformat. INFORMAT henviser til det undertiden valgfrieSAS informat navn. 'W' angiver bredden (bytes eller antallet af kolonner) påvariabel. 'D' bruges til numeriske data til at specificere antallet af cifre til højre fordecimalen. Alle informater skal indeholde et decimaltegn (.), Så SAS kan
differentiere en informat fra en SAS-variabel.

Lad os gå tilbage til vores tidligere kode og se, om Date / Time Informat hjælper os. Så lad os ændre koden i overensstemmelse hermed og tilføje en Date Informat til den som følger:

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

Linje nummer 3 i koden instruerer SAS om at læse variablen 'dato for tilslutning' (DOJ) ved hjælp af datoen
informat MMDDYYw. For hvert datofelt optager 10 mellemrum, er 'w.' - kvalifikationenindstillet til 10.

Kodens output vil se ud som følger.

Resultatet viser, at vi stadig ikke har det ønskede resultat, i stedet indeholder DOJ-kolonnen nogle numeriske værdier og ikke de datoer, vi har angivet. Hvorfor er det nu? Når en dato er læst med en datoinformat, gemmer SAS datoen som et nummer. Det betyder, at det læses som antallet af dage mellem datoen og den 1. januar 1960 (for eksempel: 3/15/1994 er lagret som 12492).

Årsagen bag dette er, at SAS har tre separate tællere, der holder styr på datoer og klokkeslæt. Disse datotællere startede ved nul den 1. januar 1960. Derfor har datoer før 1/1/1960 negative værdier, og enhver dato efter har en positiv værdi. Hver dag ved midnat forøges datotælleren med en.

En historie fortæller, at stifterne af SAS ønskede at bruge den omtrentlige fødselsdato for IBM 370-systemet, og de valgte den 1. januar 1960 som en let at huske tilnærmelse.

Nu hvor du kender årsagen til, at kolonnen DOJ viste disse tal, lad os prøve at løse dette problem. For at løse dette problem bruger vi Format.

Format

Informats er instruktionerne til læsning af data, mens formater er de instruktioner, der bruges til at vise elleroutputdata.Definition af et format til en variabel er, hvordan du beder SAS om at vise værdierne i variablen. Formater er grupperet i de samme tre klasser som informater (tegn, numerisk og dato-tid) og indeholder også altid en prik.

Den generelle form for en formaterklæring er:

  • FORMAT-variabelnavn FORMAT-NAVN.

Lad os gå tilbage til vores kode med datasættet Employee_Info for at se, om vi kan vise datoen korrekt ved hjælp af FORMAT-kommandoen.

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

Vi har brugt FORMAT-kommandoen i linje nummer 4 i ovenstående kode. Følgende outputskærm giver os den ønskede output.

Vi har med succes vist datasættet ved hjælp af kommandoen Datoformat. Jeg håber, du har forstået, hvordan man bruger format og informat.Lad os gå videre med vores SAS-programmeringsblog og se på et andet vigtigt koncept.

SAS løkker

Mens vi laver SAS-programmering, kan vi støde på situationer, hvor vi gentagne gange har brug for at udføre enblok af kode flere gange. Det er ubelejligt at skrive det samme sæt udsagn igen og igen. Det er her, sløjfer kommer ind i billedet. I SAS bruges Do-erklæringen til at implementere sløjfer. Det er også kendt som Do Loop. Billedet nedenfor visergenerel form for Do loop-udsagn i SAS.

Følgende er typerne af DO-sløjfer i SAS:

  • Indeks : Sløjfen fortsætter fra startværdien til indeksvariabelens stopværdi.
  • Mens : Sløjfen fortsætter så længe som Mens tilstand bliver falsk.
  • Så længe : Sløjfen fortsætter indtil Så længe tilstand bliver sand.

Gør indeks loop

Vi bruger en indeksvariabel som start- og stopværdi for Gør indeks loop . SAS-udsagnene udføres gentagne gange, indtil indeksvariablen når sin endelige værdi.
Syntaks:

Do indexvariable = initialvalue to finalvalue SAS statements End

Lad os se på prøvekode for at forstå Do Index Loop. I nedenstående kode er VAR indeksvariablen.

DATA SampleLoop SUM = 0 Do VAR = 1 til 10 SUM = SUM + VAR END PROC PRINT DATA = SampleLoop Run

Når du udfører ovenstående kode, får du følgende output.

Gør Mens Loop

Det Gøre imens loop bruger en WHILE-tilstand. Denne sløjfe udfører kodeblokken, når betingelsen er sand, og fortsætter med at udføre den, indtil betingelsen bliver falsk. Når betingelsen bliver falsk, afsluttes sløjfen.

Syntaks:

Gør mens (betingelse) SAS-udsagn slutter

Følgende eksempelkode hjælper dig med at forstå DO WHILE-sløjfe.

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

Ovenstående kode giver dig følgende output.

Gør indtil løkke

Do indtil-sløjfen bruger en Så længe Denne sløjfe udfører kodeblokken, når betingelsen er falsk, og fortsætter med at udføre den, indtil betingelsen bliver sand. Når betingelsen bliver sand, afsluttes sløjfen.

Syntaks:

hvad er ekko i php
Gør indtil (betingelse) SAS udsagn SLUT

Lad os se på prøveprogrammet.

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

Koden har følgende output.

Således er vi færdige begrebet sløjfer i SAS programmering. Alle de emner, vi hidtil har studeret, har talt om det grundlæggende i SAS programmering generelt.

Lad os nu se på nogle statistiske procedurer. Disse procedurer vil danne en base for avancerede analytiske procedurer.

Abonner på vores youtube-kanal for at få nye opdateringer ..!

Grundlæggende statistiske procedurer ved anvendelse af SAS

PROC betyder

Denne procedure bruges til at beregne aritmetisk gennemsnit og standardafvigelse. For folk, der er nye inden for statistik, kan det være vanskeligt at forstå disse udtryk. Så før vi begynder at kode og bruger denne procedure. Jeg vil forsøge at forklare, hvad disse udtryk betyder.

Lad os starte med aritmetisk gennemsnit og se, hvordan PROC MEANS bruges i SAS-programmering til at beregne det.

Aritmetisk middelværdi

Summen af ​​værdien af ​​numeriske variabler divideret med antallet af variabler giver dig aritmetisk gennemsnit . Det er også kendt som middel og er et mål for central tendens. Et mål for central tendens er en enkelt værdi, der forsøger at beskrive et datasæt ved at identificere den centrale position inden for det datasæt.

I SAS-programmering bruger du PROC MEANS til at beregne det aritmetiske gennemsnit. Denne procedure lader dig finde gennemsnit for alle variabler eller få variabler i et datasæt. Du kan også danne grupper og beregne gennemsnit af variabler, der er specifikke for den gruppe.

Syntaks:

PROC BETYDER DATA = DATASET Klasse variabler Var variabler
  • Variabler : Variabler i ovenstående syntaks angiver variabler fra datasættet, hvis gennemsnit skal beregnes.

Gennemsnit af et datasæt

hvis dulever kun datasættets navn uden variabler, du kan beregne gennemsnittet af alle variablerne i et datasæt.

Lad os se på en prøvekode. Jeg har betragtet et foruddefineret SAS-datasæt kaldet 'biler'. Den følgende kommando viser datasættet.

PROC PRINT data = sashelp.CARS Kør

Billedet nedenfor viser output fra ovenstående kode.


Lad os nu bruge denne datasætkode og beregne gennemsnittet af hver variabel i datasættet'Biler'.

PROC BETYDER DATA = sashelp.CARS Gennemsnit SUM MAXDEC = 2 Kør

Billedet nedenfor viser gennemsnittet af alle variablerne i datasættet op til to decimaler.

Gennemsnit af valgte variabler

Ved at angive navnene i Var-indstillingen kan du få gennemsnittet af de specificerede variabler. Se koden nedenfor.

PROC BETYDER DATA = sashelp.CARS betyder SUM MAXDEC = 2 var hestekræfter cylindre

Betyde med klasse

Du kan finde gennemsnittet af de numeriske variabler ved at organisere dem i grupper ved hjælp afen eller anden parameter for at gruppere dem.Overvej at følge prøvekoden. Lad os finde ud af gennemsnittet af hestekræfter for forskellige grupper kategoriseret efter klasser 'mærke' og 'type' af forskellige biler.

PROC BETYDER DATA = sashelp.BILER BETYDER SUM MAXDEC = 2 klasse mærke type var hestekræfter Kør

Billedet nedenfor viser output fra ovenstående kode.

Lad os fortsætte med vores SAS programmeringsblog og se på et andet vigtigt statistisk koncept.

Standardafvigelse

Standardafvigelse (SD) er et mål for, hvor varierede dataene er i et givet datasæt. Matematisk fortæller det dig, hvor tæt hvert datapunkt er på gennemsnittet af et datasæt. Hvis værdien af ​​standardafvigelsen er tæt på 0, indikerer det, at datapunkterne er meget tæt på gennemsnittet af datasættet, og en høj standardafvigelse indikerer, at datapunkterne er spredt over en lang række værdier.

I SAS kan du beregne værdien af ​​standardafvigelse ved hjælp af to procedurer. De er:

  • PROC betyder
  • UNDERSØGELSER

Standardafvigelse ved hjælp af PROC-MIDLER

Du kan måle standardafvigelsen ved hjælp af proc-midler, du skal vælge TIMER i PROC-trin. Det viser standardafvigelsesværdierne for hver numeriske variabel i datasættet.

Syntaks:

PROC BETYDER DATA = datasæt STD

Overvej denne prøvekode, lad os oprette et andet datasæt CARS1 ud fra CARS-datasættet i SASHELP-biblioteket. For at gøre dette, lad os bruge PROC SQL-proceduren. Lad os gruppere dataene ved hjælp af 'type' og 'mærke' af biler og beregne standardafvigelse for udvalgte variabler ved hjælp af STD-indstillingen med trinnet PROC betyder.

PROC SQL oprette tabel CARS1 som VÆLG mærke, type, hestekræfter, cylindre, vægt FRA SASHELP. BILER HVOR mærke ('Audi', 'BMW') KØR PROC BETYDER DATA = CARS1 STD Kør

Ovenstående kode giver standardafvigelse for udvalgte variabler. Følgende billede viser output.

PROC-UNDERSØGELSER

Denne procedure bruges til at måle standardafvigelse sammen med nogle forhåndsfunktioner som måling af standardafvigelse for kategoriske variabler og variansen.

Syntaks:

PROC SURVEYMEANS muligheder statistik-nøgleord Efter variabler Klassevariabler Var-variabler

Følgende er en beskrivelse af de anvendte parametre:

  • Ved bruges til at indikere de variabler, der bruges til at oprette grupper af observationer.
  • Klasse angiver de variabler, der anvendes til kategoriske variabler.
  • Hvor angiver de variabler, som SD beregnes for.

Lad os se på denne prøvekode, der beskriver brugen af ​​klasseparameteren, der opretter statistikken for hver af værdierne i klassevariablen.

PROC SURVEYMEANS DATA = CARS1 STD Klassetype Var type hestekræfter ods output statistik = rektangel Kør PROC PRINT DATA = rektangel Kør

Billederne nedenfor viser output af koden ovenfor. Det viser fordeling af data for variabel 'hestekræfter' for 95% konfidensinterval. (Konfidensinterval betyder en række værdier, der er defineret således, at der er en specificeret sandsynlighed for, at værdien af ​​en parameter ligger inden for den.)

Så det bringer os til slutningen af ​​SAS-programmeringsbloggen. Hvis du er i tvivl om eller problemer med indholdet af bloggen, skal du lade dem være i kommentarfeltet, jeg løser dem tidligst og svarer tilbage.

hvad er sas programmeringssprog

Hvis du ønsker at lære SAS og opbygge en karriere inden for analysedomænet, så tjek vores som kommer med instruktørstyret live træning og projektoplevelse i det virkelige liv. Denne træning hjælper dig med at forstå SAS i dybden og hjælper dig med at mestre forskellige koncepter i SAS programmeringssprog.

Har du et spørgsmål til os? Nævn det i kommentarfeltet, og vi vender tilbage til dig.