Sissejuhatus SAS-i silmustesse

SAS kui analüütiline lahendus loodi Põhja-Carolina osariigi ülikoolis 1970. aastatel, eelseisvatel aastakümnetel töötati välja edasisi statistilisi protseduure, lisati paremad objektorienteeritud komponentide raamatukogud. Praeguses olukorras hõivab SAS peaaegu 80 protsenti kogu statistikaanalüüsi turust.

Tüüpilise SAS-i programmi saab jagada kaheks etapiks, nimelt DATA ja PROC. DATA samm otsib ja aitab andmetega manipuleerida, samas kui PROC etapil on funktsioone andmete analüüsimiseks ja andmete analüüsimiseks. Andmeetapi saab täiendavalt jagada kaheks faasiks, milleks on kompileerimise ja täitmise faasid.

Mis on silmus?

Arvutiprogrammeerimiskeelte põhialustes võib ahelat pidada täidesaatvate juhiste ahelaks või jadaks, mida pidevalt täidetakse / korratakse / või korratakse, kuni teatud tingimus on saavutatud. Silmuseid kasutatakse avalduste ploki korduvaks täitmiseks. Silmuste voo klassifitseerimisel saame kindlaks teha, kas silmus on sisenemisega juhitav ahel või on see väljumise juhitav ahel. Programmeerimise kompilaator enne avalduste täitmist kontrollib, kas kõik tingimused, mis on seotud silmuste täitmiste algus on kinnitatud ja tõene, seda tegevust teostavad sisenemise kontrollitud silmused.

Väljuva kontrollitud lingi jaoks valib kompilaator lingi lõpetamisega seotud tingimused. Silmuste voo ajal on teatud protsess lõpule viidud, näiteks parameetri või mis tahes üksuse saamine sisendandmetest, parameetrite analüüs või muutmine, millele järgneb tingimus, mis kontrollib piirväärtust, näiteks kas loendur (lipp silmusega seotud väärtus). Tingimuste korral, kui see on täidetud, suunab järgnev käsk jada tagasi esimese käsu juurde jadas korrata. Kui seisund on saavutatud, liigub kompilaatori voog programmeeritud käsuharudesse, mis asuvad väljaspool silmust. Seega on silmus programmeerimiskontseptsioon, mida tavaliselt kasutatakse koodi liiasuse ja keerukuse vähendamiseks.

Silmused SAS-is

Allpool on mitu SAS-i silmuseid, mis on järgmised:

1. Iteratiivsed toiminguahelad

Do Loop, tuntud ka kui Iterative Do Loops, on kõige põhilisem silmuste vorm, mida täidetakse SAS-i andmestikus SAS Data Step-is. See ahel on oma olemuselt täiesti tingimusteta ja seda täidetakse vastavalt määratlusele, et korrata kindla arvu loendeid või seni, kuni see saab vea, mille tulemuseks on voos andmeetapist üle minna. See silmus leiab oma kasulikkuse programmides, mida kasutatakse korduvaks loendamiseks, ja programmides, mis on seotud korduvate matemaatiliste või statistiliste arvutustega.

Süntaks:

kas i = n kuni m;

n ja m on vastasmuutujad.

2. Tingimuslikud silmused

Tingimuslikud silmused SAS-is on muud toiminguahelad, mida täidetakse andmeetappides. Need on põhimõtteliselt kaks ahelat, milleks on Tee kuni ja Kuni. Silmuste erinevus põhineb asjaolul, et silmuste Do Do silmused jätkavad täitmist, kuni silmuse tingimus on tõene, seevastu Do Do silmus täidetakse seni, kuni määratletud tingimus jääb valeks ja vool eemaldub silmusest kohe, kui seisund muutub valeks. Aeg Do kuni loop teostatakse ahela allosas, Do Do Loop aga ahela ülaosas. See annab peamise erinevuse nende kahe ahela vahel, mis on Do Kuni täidab vähemalt ühe korra, kui seda programmis kasutatakse, samas kui Do Do ei pruugi üldse teostada, kuna tingimus pole tõene, siis voog ei sisene Loops iteratsiooni.

Süntaks:

teha kuni (tingimus);

teha samal ajal (tingimus);

SASi silmuste näited

Proovime mõista SAS-i silmuste kontseptsiooni programmide abil:

Näide 1: tehke silmus

Programm

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

Väljund

Rahai
190001
280002
370003
460004
550005
640006
730007
820008
910009
10010

Selgitus:

Ülaltoodud näites deklareerime muutuja (raha), mille algväärtus on 10000, programm suundub läbi loenduri, mille algväärtus on 0, et korduda 10 korda. Iga iteratsioon vähendab muutuja väärtust 1000-ga. Väljundlause käivitatakse enne ahela lõppu.

Näide 2: tehke ringi

Programm

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

Väljund

rahanewCounter
1010

Seletus

Ülaltoodud näites kuulutame kaks muutujat raha ja newCounter ning lähtestame need vastavalt väärtustega 10000 ja 0. Andmesamm kestab seni, kuni raha muutuja väärtus jõuab väärtuseni 0, mis võtab sel juhul 10 kordust. Iga iteratsiooni korral suurendatakse muutuja newCounter väärtust 1. Me kasutame selles programmis vastusmuutujana newCounter.

Näide 3: tehke kuni silmuseni

Programm

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

rahanewCounter
1010

Seletus

Selles näites üritame korrata ülaltoodud näite Do tegemise näite funktsionaalsust, kasutades samas do kuni silmust. Muutuja raha ja newCounter lähtestatakse algväärtusega vastavalt 10000 ja 0. Tehke seni, kuni silmus on täidetud tingimusel, et rahamuutuja ei ole võrdne nulliga, ja voo täitmine väljub silmusest kohe, kui muutuja väärtus jõuab nullini, mis võtab sel juhul 10 iteratsiooni.

Järeldus

Seega oleme SASis määratlenud erinevad ahelatüübid ja selgitanud nende funktsioone nende juhtimisvoo põhjal. Indekseeritud massiivi skannimiseks on siiski hiljuti välja töötatud täiendav silmus. Seda ei saa siiski pidada SAS-i tavaliseks ahelaks, kuna see on liitsilm iteratiivsete avalduste täitmiseks üleindekseeritud muutujate (näiteks massiivi) täitmiseks.

Soovitatavad artiklid

See on olnud SASi silmuste teejuht. Siin arutasime silmuste kasutuselevõttu SAS-is, Erinevat tüüpi silmuseid koos näidetega. Lisateavet leiate ka meie muudest soovitatud artiklitest -

  1. Mis on programmeerimiskeel?
  2. C ++ silmuste sissejuhatus
  3. Juhend mis on SAS
  4. Silmused R
  5. Erinevat tüüpi silmused koos selle eelistega
  6. Ahelad PowerShellis | Tüübid ja eelised

Kategooria: