SAS-programmering - Lär dig hur du kodar i SAS!



Den här bloggen om SAS programmering introducerar dig till SAS programmeringskoncept och hjälper dig att förstå SAS grundläggande detaljer i detalj med exempel.

I den här bloggen presenterar jag några av de viktiga begreppen för SAS-programmering. Innan vi börjar är det viktigt att du blir bekant med SAS. Min tidigare blogg på SAS självstudie hjälper dig att förstå SAS, dess applikationer och hjälper dig att installera SAS University Edition, som vi skulle använda här som en programmeringsmiljö.Funderar du på vilka färdigheter du bör behärska i år? Om du har planerat att gå in i Data Analytics, är ett av de bästa sätten att komma igång med samma.

Edureka 2019 Tech Career Guide är ute! De hetaste jobbet, exakta inlärningsvägar, industrisyn och mer i guiden. Ladda ner nu.





Så utan vidaredröjsmål,låt oss komma igång med SAS-programmering, eller hur?

Den här bloggen hjälper dig att förstå följande ämnen:



Innan vi börjar koda vill jag informera dig om några viktiga termer som är viktiga för SAS-programmering.

Grundläggande för SAS-programmering

SAS Windows

Stora organisationer och utbildningsinstitut föredrar att använda SAS Windows. SAS Windows har många verktyg som hjälper till att minska den tid som krävs för att skriva koder.

Följande bild visar de olika delarna av SAS Windows.



SAS-Windows - SAS-programmering - Edureka

  • Loggfönster : Det är ett körfönster. Här kan du kontrollera genomförandet av ditt program. Det visar också fel, varningar och anteckningar.
  • Kodfönster :Detta fönster är också känt som redigeringsfönster. Betrakta det som ett tomt papper eller ett anteckningsblock, där du kan skriva din SAS-kod.
  • Utgångsfönster : Som namnet antyder visar det här fönstret utdata från programmet / koden som du skriver i redigeraren.
  • Resultatfönster : Det är ett index som listar alla utdata från program som körs i en session. Eftersom det innehåller resultatet för en viss session kommer resultatfönstret att vara tomt om du stänger programvaran och startar om den.
  • Utforska Window : Den innehåller listan över alla bibliotek i systemet. Du kan också bläddra bland de systemstödda filerna här.

Några organisationer använder Linux, men utan något grafiskt användargränssnitt måste du skriva kod för varje fråga. Därför är det obekvämt att använda.

SAS datasatser

SAS-datauppsättningar kallas som datafiler. Datafiler består av rader och kolumner. Rader håller observationer och kolumner hållerVariabla namn.

SAS-variabler

SAS har två typer av variabler:

  • Numeriska variabler : Det här är standardvariabeltypen. Dessa variabler används i matematiska uttryck.
  • Teckenvariabler :Teckenvariabler används för värden som inte används i matematiska uttryck.
    De behandlas som text eller strängar. En variabel blir en teckenvariabel genom att lägga till en'$'igni slutet av variabelnamnet.

SAS bibliotek

SAS-biblioteket är en samling av SAS-filer som lagras i samma mapp eller katalog på din dator.

  • Tillfälligt bibliotek : I det här biblioteket raderas datauppsättningen när SAS-sessionen avslutas.
  • Permanent bibliotek : Datamängder sparas permanent. Därför är de tillgängliga över sessioner.

Användare kan också skapa eller definiera ett nytt bibliotek som kallas användardefinierade bibliotek med hjälp av nyckelordet LIBNAME . Dessa är också permanenta bibliotek.

SAS-programmering: SAS kodstruktur

SAS-programmering baseras på två byggstenar:

  • DATA Steg : DATA-steget skapar en SAS-datauppsättning och skickar sedan data till ett PROC-steg
  • PROC-steg : PROC-steget behandlar data

Ett SAS-program bör följa nedan nämnda regler:

vad är en instans av en klass i java
  • Nästan varje kod börjar med antingen DATA eller ett PROC-steg
  • Varje rad SAS-kod slutar med ett semikolon
  • En SAS-kod slutar med RUN eller QUIT-nyckelord
  • SAS-koder är inte skiftlägeskänsliga
  • Du kan skriva en kod över olika rader eller så kan du skriva flera uttalanden på en rad

Nu när vi har sett några grundläggande terminologier, låt oss komma igång med SAS-programmering med denna grundläggande kod:

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 ovanstående kod skapade vi en datamängd som heter Employee_Info. Den har tre variabler, en numerisk variabel som Emp_Id och två teckenvariabler som Emp_Name och Emp_Verticals. Kommandot Kör visar datamängden i utdatafönstret.

Bilden nedan visar utdata från ovan nämnda kod.

Antag att du vill se resultatet i utskriftsvyn, ja du kan göra det genom att använda en PROC PRINT-procedur, resten av koden förblir densamma.

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

Bilden nedan visar utdata från ovanstående kod.

Vi skapade precis en datamängd och förstod hur PRINT-proceduren fungerar. Låt oss nu ta ovanstående datamängd och använda den för vidare programmering. Låt oss säga att vi vill lägga till anställdas datum för anslutning till datamängden. Så vi skapar en variabel som kallas DOJ, ger den som inmatning och 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 Kör PROC PRINT DATA = Employee_Info Run

Bilden nedan visar utdata från ovanstående kod. Det är synligt att en variabel skapades, men värdet på DOJ skrevs inte ut. Istället ser vi att punkter har ersatt datumvärdena.


Varför hände det här? Tja, DOJ-variabel är utan suffixet '$', det betyder att SAS som standard läser den som en numerisk variabel. Men de uppgifter vi angav har ett specialtecken '/', så det skriver inte ut resultatet eftersom det inte är rent numeriska data. Om du kontrollerar loggfönstret ser du ett felmeddelande som 'ogiltiga data för variabel DOJ'

Hur löser vi detta problem nu? Tja, ett sätt att lösa det är att använda ett suffix '$' för DOJ-variabel. Detta konverterar DOJ-variabel till tecken och du kan skriva ut datumvärden. Låt oss göra ändringarna i koden och se utdata.

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 UTSKRIFTSDATA = Employee_Info Run

Utmatningsskärmen visar följande utdata.


Du kan se att datavärdena visas som datum genom att konvertera DOJ till tecken. Detta är dock en tillfällig lösning. Låt mig förklara det hur?

Tänk dig att en bank har en liknande datamängd. Datauppsättningen har kontoinnehavarens uppgifter som lånebelopp, avbetalningar,ochförfallodatum för låneavdrag. Tänk dig att innehavaren har missat sin tidsfrist för att betala en del och banken vill beräkna förseningen. Banken måste beräkna skillnaden mellan deadline och aktuellt datum.

Men om bankens datamängd har datum i teckenformat kan banken inte utföra matematiska operationer på den. Det här problemet kan också påverka vår datamängd. Så hur löser vi detta problem?

Nästa koncept hjälper dig att lösa problemet.

Information och format i SAS

Det är viktigt att du förstår det här ämnet om du vill vara bra på SAS-programmering.Om du kommer ihåg nämnde jag tidigare att SAS har två standardvariabeltyper:

  • Numerisk
  • Karaktär

När SAS stöter på icke-standardvariabler, kommer SAS att kasta ett fel eller så får du inte önskad utdata. För att övervinna detta problem använder SASInformeradoch format.

Få reda på mer

Informat används vanligtvis för att läsa eller mata in data från externa filer eller platta filer (somtextfiler eller sekventiella filer). Informat instruerar SAS om hur man läserdata till SAS-variabler. SAS har tre typer av informatik:tecken, numeriskt och datum / tid. Informats namnges enligt följandesyntaxstruktur:

  • Teckeninformation: $ INFORMATw.
  • Numerisk information: INFORMATw.d
  • Informerat datum / tid: INFORMATw.

”$” Indikerar en teckeninformation. INFORMAT hänvisar till det ibland valfriaSAS informat namn. 'W' anger bredden (byte eller antal kolumner) påvariabel. D används för numeriska data för att ange antalet siffror till höger omdecimalen. Alla informatik måste innehålla en decimal (.) Så att SAS kan
skilja en information från en SAS-variabel.

Låt oss gå tillbaka till vår tidigare kod och se om Date / Time Informat hjälper oss. Så låt oss ändra koden i enlighet med detta och lägga till en Date Informat till den enligt följande:

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ INFORMAT DOJ ddmmyy10. dataliner 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 UTSKRIFTSDATA = Employee_Info Run

Rad nummer 3 i koden instruerar SAS att läsa in variabeln ”datum för anslutning” (DOJ) med hjälp av datumet
informat MMDDYYw. För varje datumfält upptar 10 mellanslag är kvalifikationen ”w.”inställt på 10.

Kodens utdata skulle se ut enligt följande.

Resultatet visar att vi fortfarande inte har det önskade resultatet, istället innehåller DOJ-kolumnen några numeriska värden och inte de datum vi angav. Nu, varför är det? När ett datum har lästs med en datuminformation lagrar SAS datumet som ett nummer. Det betyder att den läses som antalet dagar mellan datumet och den 1 januari 1960 (till exempel: 3/15/1994 lagras som 12492).

Anledningen till detta är att SAS har tre separata räknare som håller koll på datum och tid. Dessa datumräknare började vid noll den 1 januari 1960. Följaktligen har datum före 1/1/1960 negativa värden och varje datum efter har ett positivt värde. Varje dag vid midnatt ökas datumräknaren med en.

En historia säger att grundarna av SAS ville använda det ungefärliga födelsedatumet för IBM 370-systemet, och de valde den 1 januari 1960 som en lätt att komma ihåg ungefärlig.

Nu när du vet orsaken till att kolumnen DOJ visade dessa siffror, låt oss försöka lösa detta problem. För att övervinna detta problem använder vi Format.

Formatera

Informat är instruktionerna för att läsa data, medan format är instruktionerna som används för att visa ellerutdata.Att definiera ett format för en variabel är hur du ber SAS att visa värdena i variabeln. Format är grupperade i samma tre klasser som informatik (tecken, numerisk och datum-tid) och innehåller också alltid en punkt.

Den allmänna formen av ett formatuttalande är:

  • FORMAT-variabelnamn FORMAT-NAMN.

Låt oss gå tillbaka till vår kod med dataset Employee_Info för att se om vi kan visa datumet korrekt med FORMAT-kommandot.

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ INFORMAT DOJ ddmmyy10. FORMAT DOJ ddmmyy10. dataliner 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 UTSKRIFTSDATA = Employee_Info Run

Vi har använt FORMAT-kommandot i rad nummer 4 i ovanstående kod. Följande utgångsskärm ger oss önskad utgång.

Vi har framgångsrikt visat datauppsättningen med kommandot Datumformat. Jag hoppas att du har förstått hur du använder format och information.Låt oss gå vidare med vår SAS-programmeringsblogg och titta på ett annat viktigt koncept.

SAS loopar

När vi gör SAS-programmering kan vi stöta på situationer där vi upprepade gånger behöver utföra enkodblock flera gånger. Det är obekvämt att skriva samma uppsättning uttalanden om och om igen. Det är här öglor kommer in i bilden. I SAS används Do-uttalandet för att implementera loopar. Det är också känt som Do Loop. Bilden nedan visarallmän form av Do loop-uttalanden i SAS.

Följande är typerna av DO-loopar i SAS:

  • Index : Slingan fortsätter från startvärdet till stoppvärdet för indexvariabeln.
  • Medan : Slingan fortsätter så länge som Medan villkor blir falskt.
  • Fram tills : Slingan fortsätter till Fram tills blir sant.

Gör indexslinga

Vi använder en indexvariabel som start- och stoppvärde för Gör indexslinga . SAS-uttalandena körs upprepade gånger tills indexvariabeln når sitt slutliga värde.
Syntax:

Gör indexvariable = initialvärde till slutvärde SAS-uttalanden Slut

Låt oss ta en titt på exempelkoden för att förstå Do Index Loop. I nedanstående kod är VAR indexvariabeln.

DATA SampleLoop SUM = 0 Gör VAR = 1 till 10 SUM = SUM + VAR END PROC UTSKRIFTSDATA = SampleLoop Run

När du kör koden ovan får du följande utdata.

Gör medan Loop

De Göra medan loop använder ett WHILE-tillstånd. Denna slinga kör kodblocket när villkoret är sant och fortsätter att köra det tills villkoret blir falskt. När villkoret blir falskt avslutas slingan.

Syntax:

Gör medan (villkor) SAS uttalanden avslutas

Följande exempelkod hjälper dig att förstå DO WHILE-loop.

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

Ovanstående kod ger dig följande resultat.

Gör tills öglan

Do Do-slingan använder en Fram tills Denna slinga kör kodblocket när villkoret är falskt och fortsätter att köra det tills villkoret blir sant. När villkoret blir sant avslutas slingan.

Syntax:

Gör tills (villkor) SAS uttalanden SLUT

Låt oss ta en titt på exempelprogrammet.

DATA SampleLoop SUM = 0 VAR = 1 Gör tills (VAR> 15) SUM = SUM + VAR VAR + 1 END PROC PRINT Run

Koden har följande utdata.

Således har vi avslutat konceptet loopar i SAS-programmering. Alla ämnen som vi hittills studerat har pratat om grunderna för SAS-programmering i allmänhet.

Låt oss nu titta på några statistiska procedurer. Dessa procedurer kommer att utgöra en bas för avancerade analytiska procedurer.

Prenumerera på vår youtube-kanal för att få nya uppdateringar ..!

Grundläggande statistiska procedurer med SAS

PROC betyder:

Denna procedur används för att beräkna aritmetiskt medelvärde och standardavvikelse. För personer som är nya inom statistik kan det vara svårt att förstå dessa termer. Så innan vi börjar koda och använder den här proceduren. Jag kommer att försöka förklara vad dessa termer betyder.

Låt oss börja med aritmetiska medelvärden och se hur PROC MEANS används i SAS-programmering för att beräkna det.

Aritmetisk medelvärde

Summan av värdet på numeriska variabler, dividerat med antalet variabler ger dig aritmetiskt medelvärde . Det är också känt som medelvärde och är ett mått på central tendens. Ett mått på central tendens är ett enda värde som försöker beskriva en uppsättning data genom att identifiera den centrala positionen inom den uppsättningen data.

I SAS-programmering använder du PROC MEANS för att beräkna det aritmetiska medelvärdet. Denna procedur låter dig hitta medelvärde för alla variabler eller få variabler i en datamängd. Du kan också bilda grupper och beräkna medelvärdet av variabler som är specifika för den gruppen.

Syntax:

PROC MÄNGAR DATA = DATASET Klassvariabler Var variabler
  • Variabler : Variabler i ovanstående syntax indikerar variabler från datamängden vars medel ska beräknas.

Medelvärde för en datamängd

Om duange bara namnet på datamängden utan några variabler, du kan beräkna medelvärdet av alla variablerna i en datamängd.

Låt oss ta en titt på en exempelkod. Jag har betraktat en fördefinierad SAS-datamängd som kallas ”bilar”. Följande kommando visar datauppsättningen.

PROC PRINT data = sashelp.CARS Run

Bilden nedan visar utdata från ovanstående kod.


Låt oss nu använda den här datamängden och beräkna medelvärdet för varje variabel i datamängden”Bilar”.

PROC MÄNGAR DATA = sashelp.CARS Medel SUM MAXDEC = 2 kör

Bilden nedan visar medelvärdet av alla variabler i datauppsättningen upp till två decimaler.

Genomsnitt av utvalda variabler

Genom att ange namnen i Var-alternativet kan du få medelvärdet av de angivna variablerna. Se koden nedan.

PROC MÄNGAR DATA = sashelp.CARS betyder SUM MAXDEC = 2 var hästkraftscylindrar Kör

Medel efter klass

Du kan hitta medelvärdet för de numeriska variablerna genom att organisera dem i grupper med hjälp avnågon parameter för att gruppera dem.Överväg att följa exempelkoden. Låt oss ta reda på medelvärdet för hästkrafter för olika grupper kategoriserade efter klasserna 'märke' och 'typ' av olika bilar.

PROC betyder data = sashelp.CARS betyder SUM MAXDEC = 2 klass gör typ var hästkrafter

Bilden nedan visar utdata från ovanstående kod.

Låt oss fortsätta med vår SAS Programming-blogg och titta på ett annat viktigt statistiskt koncept.

Standardavvikelse

Standardavvikelse (SD) är ett mått på hur varierad data är i en given datamängd. Matematiskt berättar den hur nära varje datapunkt är medelvärdet för en datamängd. Om värdet på standardavvikelsen är nära 0 indikerar det att datapunkterna ligger mycket nära medelvärdet för datamängden och en hög standardavvikelse indikerar att datapunkterna är utspridda över ett stort antal värden.

I SAS kan du beräkna värdet på standardavvikelse med två procedurer. Dom är:

  • PROC betyder:
  • UNDERSÖKNINGAR

Standardavvikelse med PROC-medel

Du kan mäta standardavvikelsen med hjälp av proc-medel, du måste välja TIMMAR alternativet i PROC-steget. Det visar standardavvikelsevärdena för varje numerisk variabel i datamängden.

Syntax:

PROC MEAN DATA = dataset STD

Tänk på denna exempelkod, låt oss skapa en annan datamängd CARS1 från CARS-datamängden i SASHELP-biblioteket. För att göra detta låter vi oss använda PROC SQL-proceduren. Låt oss gruppera data med hjälp av 'typ' och 'fabrikat' av bilar och beräkna standardavvikelsen för valda variabler med hjälp av STD-alternativet med steget PROC betyder.

PROC SQL skapa tabell CARS1 som VÄLJ make, typ, hästkrafter, cylindrar, vikt FRÅN SASHELP.CARS WHERE make in ('Audi', 'BMW') KÖR PROC MÄNGAR DATA = CARS1 STD Kör

Ovanstående kod ger standardavvikelse för utvalda variabler. Följande bild visar utdata.

PROC-UNDERSÖKNINGAR

Denna procedur används för att mäta standardavvikelse tillsammans med några avancerade funktioner som att mäta standardavvikelse för kategoriska variabler och variansen.

Syntax:

PROC SURVEYMEANS alternativ statistik-nyckelord Efter variabler Klassvariabler Var variabler

Nedan följer en beskrivning av de parametrar som används:

  • Förbi används för att indikera variablerna som används för att skapa grupper av observationer.
  • Klass anger variablerna som används för kategoriska variabler.
  • Var anger variablerna för vilka SD kommer att beräknas.

Låt oss ta en titt på denna exempelkod som beskriver användningen av klassparametern som skapar statistiken för vart och ett av värdena i klassvariabeln.

PROC SURVEYMEANS DATA = CARS1 STD Klass typ Var typ hästkrafter ods utdata statistik = rektangel Kör PROC UTSKRIFT DATA = rektangel Kör

Bilderna nedan visar utmatningen från koden ovan. Den visar fördelningen av data för variabel ”Hästkrafter” för 95% konfidensintervall. (Konfidensintervall betyder ett värdeintervall så definierat att det finns en specificerad sannolikhet att värdet för en parameter ligger inom det.)

Så det leder oss till slutet av SAS-programmeringsbloggen. För eventuella tvivel eller problem med bloggens innehåll, vänligen lämna dem i kommentarfältet, jag kommer att lösa dem tidigast och svara tillbaka.

Om du vill lära dig SAS och bygga en karriär inom analysdomänen, kolla in vår som kommer med instruktörsledad live-utbildning och verklig projektupplevelse. Denna utbildning hjälper dig att förstå SAS på djupet och hjälper dig att behärska olika begrepp inom SAS programmeringsspråk.

Har du en fråga till oss? Vänligen nämna det i kommentarfältet så återkommer vi till dig.