Introduktion til sløjfer i SAS

SAS blev oprettet som en analytisk løsning på North Carolina State University i 1970'erne. I de kommende årtier blev der udviklet yderligere statistiske procedurer, inkludering af bedre objektorienterede komponentbiblioteker. I den nuværende kontekst besætter SAS næsten 80 procent af det samlede marked for statistiske analyser.

Et typisk SAS-program kan opdeles i to trin, nemlig DATA-trin og PROC-trin. DATA-trinnet henter og hjælper med manipulering af data, mens PROC-trinnet har funktionaliteter til analyse af dataene og udfør analytiske aktiviteter på dataene. Datatrinnet kan yderligere opdeles i to faser, der er kompilerings- og udførelsesfaser.

Hvad er en løkke?

I fundamentale forhold til computerprogrammeringssprog kan en løkke betragtes som en kæde eller sekvens af eksekutive instruktioner, der kontinuerligt udføres / gentages / eller itereres, indtil en bestemt betingelse er opnået. Loops bruges til gentagne gange at udføre en blok udsagn, ved klassificering af flow i løkker kan vi bestemme, om en løkke er en indgangskontrolleret løkke, eller om den er exit-kontrolleret løkke. Programmeringskompilatoren inden eksekvering af erklæringerne kontrollerer om alle forhold er forbundet begyndelsen af ​​løkkenes henrettelser er valideret og sandt, denne aktivitet udføres af indgangskontrollerede sløjfer.

For udgangsstyret sløjfe validerer kompilatoren de betingelser, der er forbundet med terminering af sløjfe. Under strømmen af ​​sløjferne afsluttes en bestemt proces, såsom at hente en parameter eller et hvilket som helst element fra inputdataene, analyse af parametrene eller ændre det, efterfulgt af en betingelse, der kontrollerer begrænsningsværdien, såsom om en tæller (et flag værdi tilknyttet løkken). For betingelserne, hvis den er opfyldt, leder den efterfølgende instruktion sekvensen for at vende tilbage til den første instruktion i sekvensen og gentage sekvensen. Når betingelsen er nået, flytter kompilatoren strøm til programmerede instruktionsgrene, der findes uden for løkken. Således er en løkke et programmeringskoncept, der ofte bruges til at reducere kodedundans og kompleksitet.

Loops i SAS

Nedenfor er et antal løkker i SAS, der er som følger:

1. Iterative Do Loops

Do Loop, også kendt som Iterative Do Loops, er den mest basale form for sløjfer, der udføres på et SAS-datasæt i SAS Data Step. Denne sløjfe er fuldstændig ubetinget og udføres i henhold til definitionen for at iterere over det faste antal tællinger, eller indtil den modtager en fejl, der resulterer i strømmen til at springe fra datatrinnet. Denne Loop finder det nyttigt i programmer, der bruges til iterativ tælling og programmer, der er forbundet med gentagne matematiske eller statistiske beregninger.

Syntaks:

gør jeg = n til m;

n og m er tællervariabler.

2. Betingede sløjfer

Betingede sløjfer i SAS er de andre sløjfer, der udføres i datatrin. Disse er dybest set to sløjfer, der er Do While og Do indtil. Forskellen mellem sløjferne er baseret på det faktum, at Do Mens-loops fortsætter med at udføre, indtil betingelsen for løkken er sand, hvorimod do-ind-løkken vil udføre, indtil den specificerede tilstand forbliver falsk, og strømmen bevæger sig væk fra løkken, så snart betingelsen bliver falsk. Do In-loop er udført i bunden af ​​løkken, hvorimod Do While Loop udføres øverst på løkken. Dette giver den største forskel mellem de to sløjfer, der er do indtil, udføres mindst én gang, når de bruges i programmet, mens Do While muligvis ikke udføres overhovedet, som om betingelsen ikke er sand, strømmen vil ikke gå ind i Loops-iterationen.

Syntaks:

gør indtil (betingelse);

gør mens (betingelse);

Eksempler på SAS Loops

Lad os prøve at forstå begrebet loops i SAS ved hjælp af programmer:

Eksempel 1: Gør loop

Program

data Test;
money = 10000
do i = 1 to 10;
money = money - 1000;
output;
end;
run;

Produktion

Pengejeg
190001
280002
370003
460004
550005
640006
730007
820008
910009
10010

Forklaring:

I ovenstående eksempel erklærer vi en variabel (penge) initialiseret med en værdi af 10000, programmet løber gennem tælleren indlæst med en startværdi på 0 for at itereere over 10 gange. Hver iteration reducerer værdien for variablen med 1000. Udgangsangivelsen udføres, inden loopen slutter.

Eksempel 2: Gør mens sløjfe

Program

run;
data Test;
money = 10000;
newCounter = 0;
do while (money > 0);
money = money - 1000;
newCounter = newCounter + 1;
end;

Produktion

pengenewCounter
1010

Forklaring

I ovenstående eksempel erklærer vi to variabler penge og newCounter og initialiserer dem med henholdsvis værdierne 10000 og 0. Datatrinnet udføres, indtil pengevariabelværdien når 0, som i dette tilfælde tager 10 iterationer, over hver iteration øges den nyeCounter-variabel med en værdi på 1. Vi bruger newCounter som en modvariabel i dette program.

Eksempel 3: Gør indtil loop

Program

data Test;
money = 10000;
newCounter = 0;
do until (money > 0);
money = money - 1000;
newCounter = newCounter + 1;
end;
run;
Produktion

pengenewCounter
1010

Forklaring

I dette eksempel forsøger vi at gentage funktionaliteten i eksempelet på Do mens løkke illustreret ovenfor, dog ved hjælp af do indtil loop. De variable penge og newCounter initialiseres med en startværdi på henholdsvis 10000 og 0. Opgaven, indtil løkken udføres under den forudsætning, at pengevariablen ikke er lig med nul, flowudførelsen bevæger sig ud af løkken, så snart den variable værdi når nul, som i dette tilfælde tager 10 iterationer.

Konklusion

Således har vi defineret de forskellige typer loops i SAS og forklaret deres funktionaliteter baseret på deres strøm af kontrol. Der er dog en ekstra løkke, der er blevet udviklet for nylig til at scanne over et indekseret array. Det kan dog ikke betragtes som en almindelig løkke i SAS, da det er en sammensat sløjfe til at udføre iterative udsagns overindekserede variabler, såsom en matrix.

Anbefalede artikler

Dette har været en guide til Loops i SAS. Her diskuterede vi introduktionen af ​​Loops i SAS, forskellige typer loops med eksempler. Du kan også gennemgå vores andre foreslåede artikler for at lære mere -

  1. Hvad er et programmeringssprog?
  2. Introduktion til sløjfer i C ++
  3. Vejledning til Hvad er SAS
  4. Sløjfer i R
  5. Forskellige typer loops med dens fordele
  6. Loops i PowerShell | Typer og fordele

Kategori: