SAS-programmering - leer coderen in SAS!

Deze blog over SAS Programming laat je kennismaken met SAS-programmeerconcepten en helpt je de verschillende grondbeginselen van SAS tot in detail te begrijpen met voorbeelden.

In deze blog laat ik je kennismaken met enkele van de belangrijke concepten van SAS-programmeren. Voordat we aan de slag gaan, is het belangrijk dat u bekend bent met SAS. Mijn vorige blog over SAS-zelfstudie zal u helpen SAS en zijn toepassingen te begrijpen en zal u helpen bij het installeren van SAS University Edition, die we hier zouden gebruiken als een programmeeromgeving. Vraagt ​​u zich af wat de vaardigheden zijn die u dit jaar zou moeten beheersen? En als u van plan bent om in Data Analytics te stappen, is een van de beste manieren om ermee aan de slag te gaan.

Edureka 2019 Tech Career Guide is uit! De populairste functies, precieze leertrajecten, branchevooruitzichten en meer in de gids. Downloaden nu.



Dus zonder verdervertraging,Laten we aan de slag gaan met SAS-programmering, zullen we?

Deze blog zal je helpen de volgende onderwerpen te begrijpen:

Voordat we beginnen met coderen, wil ik u een paar belangrijke termen toelichten die belangrijk zijn voor SAS-programmering.

Grondbeginselen van SAS-programmering

SAS-vensters

Grote organisaties en opleidingsinstituten gebruiken bij voorkeur SAS Windows. SAS Windows heeft veel hulpprogramma's die de tijd die nodig is om codes te schrijven, helpen verminderen.

De volgende afbeelding toont de verschillende onderdelen van SAS Windows.

SAS-Windows - SAS-programmering - Edureka

  • Log Venster : Het is een executievenster. Hier kunt u de uitvoering van uw programma controleren. Het geeft ook fouten, waarschuwingen en opmerkingen weer.
  • Code Venster :Dit venster wordt ook wel editorvenster genoemd. Beschouw het als een blanco papier of een notitieblok, waar u uw SAS-code kunt schrijven.
  • Uitvoervenster : Zoals de naam suggereert, toont dit venster de uitvoer van het programma / de code die u in de editor schrijft.
  • Resultaatvenster : Het is een index die alle output van programma's opsomt die in één sessie worden uitgevoerd. Aangezien het de resultaten van een bepaalde sessie bevat, zal het resultatenvenster leeg zijn als u de software sluit en opnieuw start.
  • Verken Window : Het bevat de lijst van alle bibliotheken in het systeem. U kunt hier ook door de door het systeem ondersteunde bestanden bladeren.

Een paar organisaties gebruiken echter Linux, zonder grafische gebruikersinterface moet u voor elke zoekopdracht code schrijven. Daarom is het onhandig om te gebruiken.

SAS-gegevenssets

SAS-gegevenssets worden gegevensbestanden genoemd. Gegevensbestanden bestaan ​​uit rijen en kolommen. Rijen bevatten observaties en kolommen bevattenVariabele namen.

SAS-variabelen

SAS heeft twee soorten variabelen:

  • Numerieke variabelen : Dit is het standaard type variabele. Deze variabelen worden gebruikt in wiskundige uitdrukkingen.
  • Karaktervariabelen :Tekenvariabelen worden gebruikt voor waarden die niet in wiskundige uitdrukkingen worden gebruikt.
    Ze worden behandeld als tekst of tekenreeksen. Een variabele wordt een tekenvariabele door een‘$’ SIgnaan het einde van de variabelenaam.

SAS-bibliotheken

SAS-bibliotheek is een verzameling SAS-bestanden die zijn opgeslagen in dezelfde map of directory op uw computer.

  • Tijdelijke bibliotheek : In deze bibliotheek wordt de dataset verwijderd wanneer de SAS-sessie eindigt.
  • Permanente bibliotheek : Datasets worden permanent opgeslagen. Daarom zijn ze beschikbaar voor verschillende sessies.

Gebruikers kunnen ook een nieuwe bibliotheek maken of definiëren die bekend staat als door de gebruiker gedefinieerde bibliotheken door het trefwoord te gebruiken LIBNAME . Dit zijn ook permanente bibliotheken.

SAS-programmering: SAS-codestructuur

SAS-programmering is gebaseerd op twee bouwstenen:

  • DATA Stap : De DATA-stap maakt een SAS-gegevensset en geeft de gegevens vervolgens door aan een PROC-stap
  • PROC Stap : De PROC-stap verwerkt de gegevens

Een SAS-programma moet de onderstaande regels volgen:

  • Bijna elke code begint met DATA of een PROC-stap
  • Elke regel SAS-code eindigt met een puntkomma
  • Een SAS-code eindigt op het trefwoord RUN of QUIT
  • SAS-codes zijn niet hoofdlettergevoelig
  • U kunt een code over verschillende regels schrijven of u kunt meerdere instructies op één regel schrijven

Nu we een paar basisterminologieën hebben gezien, gaan we aan de slag met SAS-programmeren met deze basiscode:

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

In de bovenstaande code hebben we een dataset gemaakt met de naam Employee_Info. Het heeft drie variabelen, een numerieke variabele als Emp_Id en twee tekenvariabelen als Emp_Name en Emp_Verticals. De opdracht Uitvoeren geeft de gegevensset weer in het uitvoervenster.

De onderstaande afbeelding toont de uitvoer van de bovengenoemde code.

wat is een methode in javascript

Stel dat je het resultaat in print view wilt zien, dan kun je dat doen door een PROC PRINT procedure te gebruiken, de rest van de code blijft hetzelfde.

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

De onderstaande afbeelding toont de uitvoer van de bovenstaande code.

We hebben zojuist een dataset gemaakt en begrepen hoe de PRINT-procedure werkt. Laten we nu de bovenstaande dataset nemen en deze gebruiken voor verdere programmering. Stel dat we de datum van deelname van de werknemer aan de dataset willen toevoegen. We maken dus een variabele genaamd DOJ, geven deze als invoer en printen het resultaat.

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

De onderstaande afbeelding toont de uitvoer van de bovenstaande code. Het is zichtbaar dat er een variabele is gemaakt, maar de waarde van DOJ is niet afgedrukt. In plaats daarvan zien we dat stippen de datumwaarden hebben vervangen.


Waarom is dit gebeurd? Welnu, DOJ-variabele heeft geen achtervoegsel ‘$’, dat betekent dat SAS het standaard als een numerieke variabele zal lezen. Maar de gegevens die we hebben ingevoerd, hebben een speciaal teken ‘/’, en daarom wordt het resultaat niet afgedrukt, omdat het geen puur numerieke gegevens zijn. Als u het logvenster controleert, ziet u een foutmelding als ‘ongeldige gegevens voor variabele DOJ’

Hoe lossen we dit probleem nu op? Een manier om het op te lossen is door een achtervoegsel ‘$’ te gebruiken voor de DOJ-variabele. Dit converteert de DOJ-variabele naar een teken en u kunt datumwaarden afdrukken. Laten we de wijzigingen in de code aanbrengen en de uitvoer bekijken.

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

Het uitvoerscherm geeft de volgende uitvoer weer.


U kunt zien dat de gegevenswaarden worden weergegeven als datums door DOJ om te zetten in tekens. Dit is echter een tijdelijke oplossing. Laat me het uitleggen hoe?

Stel je voor dat een bank een vergelijkbare dataset heeft. De dataset bevat gegevens van de rekeninghouder, zoals geleend bedrag, termijnen,envervaldatum voor afbetaling van de lening. Stel, de houder heeft zijn deadline gemist om een ​​termijn te betalen en de bank wil de vertraging berekenen. De bank zal het verschil tussen de deadline en de huidige datum moeten berekenen.

Maar als de dataset van de bank datums in tekenindeling heeft, kan de bank er geen wiskundige bewerkingen op uitvoeren. Dit probleem kan ook van invloed zijn op onze dataset. Dus hoe lossen we dit probleem op?

Het volgende concept zal u helpen dit probleem op te lossen.

Informatie en formaten in SAS

Het is belangrijk dat je dit onderwerp goed begrijpt als je goed wilt worden in SAS programmeren.Als je het je kunt herinneren, heb ik eerder gezegd dat SAS twee standaardvariabele typen heeft:

  • Numeriek
  • Karakter

Wanneer SAS niet-standaard variabelen tegenkomt, genereert SAS een fout of krijgt u niet de gewenste uitvoer. Om dit probleem op te lossen, gebruikt SASOp de hoogteen formaten.

Meer te weten komen

Informats worden meestal gebruikt om gegevens uit externe bestanden of platte bestanden (zoalstekstbestanden of opeenvolgende bestanden). De informat instrueert SAS over hoe te lezengegevens in SAS-variabelen. SAS heeft drie soorten informats:teken, numeriek en datum / tijd. Informats worden als volgt genoemdsyntaxis structuur:

  • Karakter Informat: $ INFORMATw.
  • Numeriek geïnformeerd: INFORMATw.d
  • Datum / tijd geïnformeerd: INFORMATw.

De ‘$’ geeft een tekeninformat aan. INFORMAT verwijst naar het soms optioneleSAS informat naam. De ‘w’ geeft de breedte (bytes of aantal kolommen) van devariabele. De ‘d’ wordt gebruikt voor numerieke gegevens om het aantal cijfers rechts van te specificerende komma. Alle informats moeten een decimale punt (.) Bevatten, zodat SAS dat kan
onderscheid een informat van een SAS-variabele.

Laten we teruggaan naar onze vorige code en kijken of Date / Time Informat ons helpt. Dus laten we de code dienovereenkomstig wijzigen en er als volgt een datuminformat aan toevoegen:

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ INFORMAT DOJ ddmmjj10. 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

Regel nummer 3 in de code geeft SAS de opdracht om de variabele ‘date of toetreding’ (DOJ) in te lezen met behulp van de datum
informat MMDDYYw. Voor elk datumveld dat 10 spaties inneemt, is de kwalificatie ‘w.’ingesteld op 10.

De uitvoer van de code ziet er als volgt uit.

Het resultaat laat zien dat we nog steeds niet het gewenste resultaat hebben, in plaats daarvan bevat de DOJ-kolom enkele numerieke waarden en niet de datums die we hebben gespecificeerd. Nu, waarom is dat? Welnu, zodra een datum wordt gelezen met een datuminformat, slaat SAS de datum op als een nummer. Dat betekent dat het wordt gelezen als het aantal dagen tussen de datum en 1 januari 1960 (bijvoorbeeld: 15-3-1994 wordt opgeslagen als 12492).

De reden hierachter is dat SAS drie aparte tellers heeft die data en tijd bijhouden. Deze datumtellers begonnen op 1 januari 1960 bij nul. Daarom hebben datums vóór 1/1/1960 negatieve waarden en elke datum erna heeft een positieve waarde. Elke dag om middernacht wordt de datumteller met één opgehoogd.

Volgens één verhaal wilden de oprichters van SAS de geschatte geboortedatum van het IBM 370-systeem gebruiken en kozen ze 1 januari 1960 als een gemakkelijk te onthouden benadering.

Nu u de reden weet waarom de kolom DOJ deze cijfers weergeeft, kunnen we proberen dit probleem op te lossen. Om dit probleem op te lossen, gebruiken we Format.

Formaat

Informats zijn de instructies voor het lezen van gegevens, terwijl formaten de instructies zijn die worden gebruikt om of weer te gevenuitvoergegevens.Het definiëren van een formaat voor een variabele is hoe u SAS vertelt om de waarden in de variabele weer te geven. Formaten zijn gegroepeerd in dezelfde drie klassen als informats (teken, numeriek en datum-tijd) en bevatten ook altijd een punt.

De algemene vorm van een opmaakverklaring is:

  • FORMAT variabelenaam FORMAT-NAME.

Laten we teruggaan naar onze code met dataset Employee_Info om te zien of we de datum correct kunnen weergeven met het FORMAT-commando.

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ INFORMAT DOJ ddmmjj10. FORMAT DOJ ddmmjj10. 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

We hebben het FORMAT-commando gebruikt in regel nummer 4 in de bovenstaande code. Het volgende uitvoerscherm geeft ons de gewenste uitvoer.

We hebben de gegevensset met succes weergegeven met de opdracht Datumnotatie. Ik hoop dat je hebt begrepen hoe je format en informat moet gebruiken.Laten we verder gaan met onze SAS-programmeerblog en een ander belangrijk concept bekijken.

SAS-lussen

Tijdens SAS-programmering kunnen we situaties tegenkomen waarin we herhaaldelijk eenblok code meerdere keren. Het is onhandig om steeds weer dezelfde set verklaringen te schrijven. Dit is waar lussen in beeld komen. In SAS wordt de Do-instructie gebruikt om lussen te implementeren. Het is ook bekend als de Do Loop. De onderstaande afbeelding toont dealgemene vorm van de Do-lusinstructies in SAS.

Hieronder volgen de soorten DO-lussen in SAS:

  • Inhoudsopgave : De lus gaat door van de startwaarde tot de stopwaarde van de indexvariabele.
  • Terwijl : De lus gaat door zolang de Terwijl voorwaarde wordt onwaar.
  • Tot : De lus gaat door tot de Tot voorwaarde wordt Waar.

Doe Index-lus

We gebruiken een indexvariabele als start- en stopwaarde voor Doe Index-lus . De SAS-instructies worden herhaaldelijk uitgevoerd totdat de indexvariabele zijn uiteindelijke waarde bereikt.
Syntaxis:

Voer indexvariable = initialvalue uit naar finalvalue SAS-instructies End

Laten we eens kijken naar voorbeeldcode om Do Index Loop te begrijpen. In de onderstaande code is VAR de indexvariabele.

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

Als je de bovenstaande code uitvoert, krijg je de volgende output.

Doe While Loop

De Doen terwijl lus gebruikt een WHILE-voorwaarde. Deze lus voert het codeblok uit wanneer de voorwaarde waar is en blijft het uitvoeren totdat de voorwaarde onwaar wordt. Zodra de voorwaarde onwaar wordt, wordt de lus beëindigd.

Syntaxis:

Do While (voorwaarde) SAS-instructies End

De volgende voorbeeldcode zal u helpen de DO WHILE-lus te begrijpen.

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

De bovenstaande code geeft u de volgende uitvoer.

Doe tot Loop

De Do Tot-lus gebruikt een Tot Deze lus voert het codeblok uit als de voorwaarde onwaar is en blijft het uitvoeren totdat de voorwaarde waar wordt. Zodra de voorwaarde waar wordt, wordt de lus beëindigd.

Syntaxis:

wat is echo in php
Do Tot (voorwaarde) SAS-instructies END

Laten we een voorbeeldprogramma bekijken.

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

De code heeft de volgende output.

Zo zijn we klaar met het concept van loops in SAS-programmering. Alle onderwerpen die we tot nu toe hebben bestudeerd, hebben betrekking op de basisprincipes van SAS-programmeren in het algemeen.

Laten we nu eens kijken naar enkele statistische procedures. Deze procedures vormen een basis voor gevorderden analytische procedures.

Abonneer je op ons YouTube-kanaal om nieuwe updates te ontvangen ..!

Statistische basisprocedures met behulp van SAS

PROC BETEKENT

Deze procedure wordt gebruikt om het rekenkundig gemiddelde en de standaarddeviatie te berekenen. Voor mensen die nieuw zijn bij statistieken, kan het moeilijk zijn om deze termen te begrijpen. Dus voordat we beginnen met coderen en deze procedure gebruiken. Ik zal proberen uit te leggen wat deze termen betekenen.

Laten we beginnen met rekenkundig gemiddelde en kijken hoe PROC MEANS wordt gebruikt in SAS-programmering om dit te berekenen.

Rekenkundig gemiddelde

De som van de waarde van numerieke variabelen, gedeeld door het aantal variabelen geeft u de rekenkundig gemiddelde . Het is ook bekend als gemiddelde en is een maat voor centrale tendens. Een maatstaf voor centrale tendens is een enkele waarde die probeert een set gegevens te beschrijven door de centrale positie binnen die set gegevens te identificeren.

Bij SAS-programmering gebruikt u PROC MEANS om het rekenkundig gemiddelde te berekenen. Met deze procedure kunt u het gemiddelde van alle variabelen of enkele variabelen van een gegevensset vinden. U kunt ook groepen vormen en het gemiddelde berekenen van variabelen die specifiek zijn voor die groep.

Syntaxis:

PROC BETEKENT DATA = DATASET Klasse Variabelen Var Variabelen
  • Variabelen : Variabelen in de bovenstaande syntaxis geven variabelen aan uit de dataset waarvan het gemiddelde moet worden berekend.

Gemiddelde van een gegevensset

als jijgeef alleen de naam van de dataset zonder variabelen, u kunt het gemiddelde van alle variabelen in een dataset berekenen.

Laten we een voorbeeldcode eens bekijken. Ik heb een voorgedefinieerde SAS-dataset overwogen, genaamd ‘auto's’. De volgende opdracht geeft de gegevensset weer.

PROC PRINT data = sashelp.CARS Run

De onderstaande afbeelding toont de uitvoer van bovenstaande code.


Laten we nu deze gegevenssetcode gebruiken en het gemiddelde van elke variabele in de gegevensset berekenen‘Auto's’.

PROC BETEKENT DATA = sashelp.CARS Mean SUM MAXDEC = 2 Run

Afbeelding hieronder toont het gemiddelde van alle variabelen in de dataset tot twee decimalen.

Gemiddelde van geselecteerde variabelen

Door de namen in de Var-optie op te geven, kunt u het gemiddelde van de opgegeven variabelen krijgen. Raadpleeg de onderstaande code.

PROC BETEKENT DATA = sashelp CARS gemiddelde SUM MAXDEC = 2 var pk cilinders Run

Gemiddelde per klasse

U kunt het gemiddelde van de numerieke variabelen vinden door ze in groepen te organiseren meteen parameter om ze te groeperen.Overweeg om de voorbeeldcode te volgen. Laten we eens kijken naar het gemiddelde aantal pk's voor verschillende groepen, gecategoriseerd door de klassen ‘merk’ en ‘type’ van verschillende auto's.

PROC BETEKENT DATA = sashelp.CARS BETEKENT SUM MAXDEC = 2 klasse merk type var pk Run

De onderstaande afbeelding toont de uitvoer van de bovenstaande code.

Laten we doorgaan met onze SAS Programming blog en eens kijken naar een ander belangrijk statistisch concept.

Standaardafwijking

Standaarddeviatie (SD) is een maatstaf voor hoe gevarieerd de gegevens in een bepaalde gegevensset zijn. Wiskundig gezien vertelt het u hoe dicht elk gegevenspunt ligt bij de gemiddelde waarde van een gegevensset. Als de waarde van de standaarddeviatie dicht bij 0 ligt, geeft dit aan dat de datapunten zeer dicht bij het gemiddelde van de dataset liggen en een hoge standaarddeviatie geeft aan dat de datapunten verspreid zijn over een breed scala aan waarden.

In SAS kunt u de waarde van standaarddeviatie berekenen met behulp van twee procedures. Zij zijn:

  • PROC BETEKENT
  • ONDERZOEKSMIDDELEN

Standaarddeviatie met behulp van PROC MEANS

U kunt de standaarddeviatie meten met proc-middelen, u moet de UREN optie in de PROC-stap. Het toont de standaarddeviatie-waarden voor elke numerieke variabele in de gegevensset.

Syntaxis:

PROC BETEKENT DATA = dataset STD

Beschouw deze voorbeeldcode, laten we een andere gegevensset CARS1 maken op basis van de CARS-gegevensset in de SASHELP-bibliotheek. Om dit te doen, laten we ons de PROC SQL-procedure gebruiken. Laten we de gegevens groeperen met behulp van ‘type’ en ‘merk’ auto's en de standaarddeviatie voor geselecteerde variabelen berekenen met behulp van de STD-optie met de PROC-middelenstap.

PROC SQL maakt tabel CARS1 als SELECT merk, type, pk, cilinders, gewicht VAN SASHELP.CARS WAAR make in ('Audi', 'BMW') RUN PROC BETEKENT DATA = CARS1 STD Run

De bovenstaande code geeft standaarddeviatie voor geselecteerde variabelen. De volgende afbeelding toont de uitvoer.

PROC-ONDERZOEKSMIDDELEN

Deze procedure wordt gebruikt om de standaarddeviatie te meten, samen met enkele geavanceerde functies, zoals het meten van de standaarddeviatie voor categorische variabelen en de variantie.

Syntaxis:

PROC-ONDERZOEKEN opties statistiek-trefwoorden Op variabelen Klassevariabelen Var-variabelen

Hieronder volgt de beschrijving van de gebruikte parameters:

  • Door wordt gebruikt om de variabelen aan te geven die worden gebruikt om groepen observaties te creëren.
  • Klasse geeft de variabelen aan die worden gebruikt voor categorische variabelen.
  • Waar geeft de variabelen aan waarvoor SD wordt berekend.

Laten we eens kijken naar deze voorbeeldcode die het gebruik van de class-parameter beschrijft, die de statistieken creëert voor elk van de waarden in de class-variabele.

oproep door verwijzing in c ++
PROC SURVEYMEANS DATA = CARS1 STD Klasse type Var type pk ods output statistieken = rechthoek Uitvoeren PROC PRINT DATA = rechthoek Uitvoeren

De onderstaande afbeeldingen tonen de uitvoer van de bovenstaande code. Het toont de distributie van gegevens voor de variabele ‘Horsepower’ voor een betrouwbaarheidsinterval van 95%. (Betrouwbaarheidsinterval betekent een reeks waarden die zo zijn gedefinieerd dat er een gespecificeerde kans is dat de waarde van een parameter erin ligt.)

Dat brengt ons dus aan het einde van de SAS-programmeerblog. Bij twijfel of probleem met de inhoud van de blog, laat ze dan achter in het opmerkingengedeelte, ik zal ze op zijn vroegst oplossen en reageren.

Als je SAS wilt leren en een carrière in het analytische domein wilt opbouwen, bekijk dan onze die wordt geleverd met live training onder leiding van een instructeur en real-life projectervaring. Deze training helpt je SAS diepgaand te begrijpen en helpt je verschillende concepten van de SAS-programmeertaal onder de knie te krijgen.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte en we nemen contact met u op.