SAS-i programmeerimine - õppige, kuidas SAS-is kodeerida!

See SAS-i programmeerimise ajaveeb tutvustab teile SAS-i programmeerimiskontseptsioone ja aitab teil näidete abil üksikasjalikult mõista SAS-i erinevaid põhialuseid.

Selles blogis tutvustan teile mõnda SAS-i programmeerimise olulist mõistet. Enne alustamist on oluline, et tutvuksite SAS-iga. Minu eelmine ajaveeb SASi õpetus aitab teil mõista SAS-i, selle rakendusi ja aitab teil installida SAS University Editioni, mida me siin programmeerimiskeskkonnana kasutaksime. Kas soovite teada, millised on oskused, peaksite sel aastal õppima? Kui plaanite astuda ka Data Analyticsi, on üks parimaid viise sellega alustamiseks.

Edureka 2019 Techi karjäärijuhend on väljas! Juhendis on kuumimad töörollid, täpsed õpperajad, tööstuse väljavaated ja muu. Lae alla nüüd.





Nii et ilma pikemaltviivitus,alustame SAS-i programmeerimisega, kas pole?

See ajaveeb aitab teil mõista järgmisi teemasid:



Enne kodeerimise alustamist tahaksin teid lühidalt tutvustada mõne olulise terminiga, mis on SAS-i programmeerimise jaoks olulised.

SAS-i programmeerimise alused

SAS Windows

Suured organisatsioonid ja koolitusasutused eelistavad kasutada SAS Windowsi. SAS Windowsil on palju utiliite, mis aitavad lühendada koodide kirjutamiseks kuluvat aega.

Järgmine pilt näitab SAS Windowsi erinevaid osi.



SAS-Windows - SAS-i programmeerimine - Edureka

  • Logi aken : See on täitmisaken. Siin saate kontrollida oma programmi täitmist. Samuti kuvatakse vead, hoiatused ja märkused.
  • Koodiaken :Seda akent nimetatakse ka redaktoriaknaks. Pidage seda tühjaks paberiks või märkmikuks, kuhu saate oma SAS-koodi kirjutada.
  • Väljundaken : Nagu nimigi ütleb, kuvatakse selles aknas programmi / koodi väljund, mille kirjutate redaktorisse.
  • Tulemuste aken : See on register, mis loetleb kõik ühe seansi käigus käivitatud programmide väljundid. Kuna see hoiab konkreetse seansi tulemusi, on tulemuste aken tühi, kui sulgete tarkvara ja taaskäivitate selle.
  • Avastage aken : See hoiab kõigi süsteemi teekide loendit. Siit saate sirvida ka süsteemi toetatud faile.

Mõned organisatsioonid kasutavad Linuxi, kuid ilma graafilise kasutajaliideseta peate iga päringu jaoks koodi kirjutama. Seetõttu on selle kasutamine ebamugav.

SAS-i andmekogumid

SAS-i andmekogumeid nimetatakse andmefailideks. Andmefailid koosnevad ridadest ja veergudest. Ridadel on vaatlused ja veergudelMuutuja nimed.

SAS-i muutujad

SAS-l on kahte tüüpi muutujaid:

  • Numbrilised muutujad : See on vaikimisi muutuja tüüp. Neid muutujaid kasutatakse matemaatilistes avaldistes.
  • Tähemuutujad :Märgimuutujaid kasutatakse väärtuste jaoks, mida matemaatilistes avaldistes ei kasutata.
    Neid käsitletakse teksti või stringidena. Muutujast saab tähemuutuja a lisades‘$’ Signmuutuja nime lõpus.

SASi raamatukogud

SAS-i kogu on SAS-failide kogu, mis on salvestatud teie arvuti samasse kausta või kataloogi.

  • Ajutine raamatukogu : Selles teegis kustutatakse andmekogum, kui SAS-seanss lõpeb.
  • Alaline raamatukogu : Andmekogumid salvestatakse jäädavalt. Seega on need saadaval kogu seansi vältel.

Kasutajad saavad märksõna abil luua või määratleda ka uue teegi, mida nimetatakse kasutaja määratud teekideks LIBNAME . Need on ka püsiraamatukogud.

SASi programmeerimine: SASi koodistruktuur

SAS-i programmeerimine põhineb kahel ehitusplokil:

  • ANDMED : DATA-samm loob SAS-i andmekomplekti ja edastab seejärel andmed PROC-etapile
  • PROC samm : PROC samm töötleb andmeid

SAS-i programm peaks järgima allpool nimetatud reegleid:

  • Peaaegu iga kood algab kas DATA või PROC sammuga
  • Iga SAS-koodi rida lõpeb semikooloniga
  • SAS-kood lõpeb märksõnaga RUN või QUIT
  • SAS-koodid ei ole tõstutundlikud
  • Võite kirjutada koodi erinevatele ridadele või kirjutada mitu lauset ühele reale

Nüüd, kui oleme näinud mõnda põhiterminoloogiat, alustame SAS-i programmeerimist selle põhikoodiga:

ANDMED Töötaja_info sisend Emp_ID Emp_Name $ Emp_Vertical $ datalines 101 Mak SQL 102 Rama SAS 103 Priya Java 104 Karthik Excel 105 Mandeep SAS Run

Ülalolevas koodis lõime andmekomplekti nimega Employee_Info. Sellel on kolm muutujat, üks numbriline muutuja kui Emp_Id ja kaks tähemuutujat kui Emp_Name ja Emp_Verticals. Käsk Run (Käivita) kuvab väljundaknas andmekogumi.

c ++ sort ()

Alloleval pildil on ülalnimetatud koodi väljund.

Oletame, et soovite tulemust printimisvaates näha, seda saate teha ka PROC PRINT protseduuri kasutades, ülejäänud kood jääb samaks.

DATA Employee_Info sisend 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

Alloleval pildil on näidatud ülaltoodud koodi väljund.

Lõime just andmekogumi ja saime aru, kuidas PRINT protseduur töötab. Nüüd võtame ülaltoodud andmekogumi ja kasutame seda edasiseks programmeerimiseks. Oletame, et soovime lisada andmekogumisse töötaja liitumise kuupäeva. Nii loome muutuja nimega DOJ, anname selle sisendiks ja printime tulemuse.

ANDMED Töötaja_info sisend 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äivitage PROC PRINT DATA = töötaja_info käivitamine

Allpool olev pilt näitab ülaltoodud koodi väljundit. On nähtav, et muutuja loodi, kuid DOJ väärtust ei prinditud. Selle asemel näeme, et kuupäeva väärtused on asendatud täppidega.


Miks see juhtus? Noh, DOJ muutuja on ilma sufiksita '$', see tähendab, et SAS loeb seda vaikimisi numbrilise muutujana. Kuid sisestatud andmetel on erimärk ‘/’, mistõttu need ei trüki tulemust, kuna need pole puhtalt arvandmed. Kui kontrollite logiakent, näete veateadet muutuja DOJ valed andmed

Kuidas me selle probleemi lahendame? Noh, üks viis selle lahendamiseks on DOJ muutuja jaoks sufiksi ‘$’ kasutamine. See teisendab DOJ muutuja tähemärgiks ja saate printida kuupäeva väärtused. Teeme koodis muudatused ja näeme väljundit.

ANDMED Töötaja_info sisend 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

Väljundiekraanil kuvatakse järgmine väljund.


DOJ tähemärgiks teisendades näete, et andmete väärtused kuvatakse kuupäevadena. See on siiski ajutine lahendus. Las ma seletan, kuidas?

Kujutage ette, et pangal on sarnane andmekogum. Andmekomplektil on kontoomaniku andmed, näiteks laenu summa, osamaksed,jalaenu osamakse tähtaeg. Kujutage ette, et omanikul on osamakse tasumise tähtaeg ületatud ja pank soovib viivitust arvutada. Pank peab arvutama tähtpäeva ja praeguse kuupäeva vahe.

Kuid kui panga andmekogumil on tähtvormingus kuupäevad, ei saa pank sellega matemaatilisi toiminguid teha. See probleem võib mõjutada ka meie andmekogumit. Kuidas siis seda probleemi lahendada?

Järgmine kontseptsioon aitab teil sellest probleemist üle saada.

Informaatid ja vormingud SAS-is

Kui soovite SAS-i programmeerimises hästi hakkama saada, on sellest teemast hästi aru saada.Kui mäletate, mainisin varem, et SAS-il on kaks standardset muutuja tüüpi:

  • Numbriline
  • Iseloom

Kui SAS satub mittestandardsete muutujatega, viskab SAS vea või te ei saa soovitud väljundit. Selle probleemi ületamiseks kasutab SASTeavitatudja vormingud.

Leia rohkem

Informaate kasutatakse tavaliselt välistest failidest või lamedatest failidest (nttekstifailid või järjestikused failid). Informaat juhatab SASi lugemaandmed SAS-i muutujatesse. SASil on kolme tüüpi Informatsi:märk, arv ja kuupäev / kellaaeg. Informaatide nimed on järgmisedsüntaksistruktuur:

  • Märgi informaat: $ INFORMATw.
  • Numbriline informeeritud: INFORMATw.d
  • Teavitamise kuupäev / kellaaeg: INFORMATw.

Täht $ tähistab informatsiooni. INFORMAT viitab mõnikord vabatahtlikuleSAS-i teabe nimi. „W” tähistab veeru laiust (baiti või veergude arvu)muutuv. Tähte d kasutatakse numbriliste andmete jaoks, et määrata numbrite arv paremalkümnendkoht. Kõik informaadid peavad sisaldama komakohta (.), Et SAS saaks
eristada informaati SAS-muutujast.

Minge tagasi oma eelmise koodi juurde ja vaadake, kas kuupäeva / kellaaja informaat aitab meid. Muutkem koodi vastavalt ja lisage sellele kuupäeva informaat järgmiselt:

ANDMED Töötaja_info sisend 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 Run PROC PRINT DATA = Employee_Info Run

Koodi rida 3 annab SAS-ile ülesandeks lugeda muutujat ‘liitumise kuupäev’ (DOJ) kuupäeva kasutades
informat MMDDYYw. Kui iga kuupäevaväli võtab 10 tühikut, on tähis „w.”seatud väärtusele 10.

Koodi väljund näeks välja järgmine.

Tulemus näitab, et meil pole ikka soovitud tulemust, selle asemel on veerus DOJ mõned arvväärtused, mitte meie määratud kuupäevad. Miks see nii on? Noh, kui kuupäev on loetud kuupäeva informaatiga, salvestab SAS kuupäeva numbrina. See tähendab, et seda loetakse päevade arvuna kuupäeva ja 1. jaanuari 1960 vahel (Näiteks: 15.03.1994 on salvestatud kui 12492).

Põhjus on selles, et SAS-il on kolm eraldi loendurit, mis jälgivad kuupäevi ja kellaaega. Need kuupäevalugejad algasid nullist 1. jaanuaril 1960. Seega on kuupäevad enne 1. jaanuari 1960 negatiivsed ja mis tahes järgnevad kuupäevad positiivsed. Iga päev südaööl suurendatakse kuupäevalugurit ühe võrra.

Ühe loo kohaselt soovisid SAS-i asutajad kasutada süsteemi IBM 370 ligikaudset sünnikuupäeva ja nad valisid 1. jaanuari 1960 hõlpsasti meelde tuletavaks lähenduseks.

Nüüd, kui teate põhjust, miks veerus DOJ neid numbreid kuvati, proovime selle probleemi lahendada. Selle probleemi ületamiseks kasutame vormingut.

Vormindus

Informaatid on juhised andmete lugemiseks, vormingud aga juhised, mida kasutatakse võiväljundandmed.Muutuja vormingu määratlemine on see, kuidas käskite SAS-il kuvada muutuja väärtused. Vormingud on rühmitatud samadesse klassi kui informaadid (märk, numbriline ja kuupäev-kellaaeg) ning sisaldavad alati ka punkti.

Vormingu avalduse üldine vorm on:

  • FORMAT muutuja-nimi FORMAT-NAME.

Minge tagasi oma koodi juurde, millel on andmekogum Employee_Info, et näha, kas suudame kuupäeva õigesti kuvada käsu FORMAT abil.

ANDMED Töötaja_info sisend Emp_ID Emp_Name $ Emp_Vertical $ DOJ INFORMAT DOJ ddmmyy10. VORMING 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 Run PROC PRINT DATA = Employee_Info Run

Oleme ülaltoodud koodis real 4 kasutanud käsku FORMAT. Järgmine väljundiekraan annab meile soovitud väljundi.

Andmekomplekti kuvamine käsu Kuupäeva vorming abil on õnnestunud. Loodan, et olete aru saanud, kuidas vormingut ja informaatikat kasutada.Liigugem oma SAS-i programmeerimisblogiga edasi ja heitkem pilk veel ühele olulisele kontseptsioonile.

SAS-i aasad

SAS-i programmeerimise ajal võime kohata olukordi, kus peame korduvalt täitma akoodiplokk mitu korda. On ebamugav sama avalduste kogumit uuesti ja uuesti kirjutada. Siin tulevad silmad pildile. SAS-is kasutatakse tsüklite juurutamiseks käsku Do. Seda tuntakse ka kui Do Loopi. Alloleval pildil onSAS-i Do loop -lausete üldine vorm.

Järgmised on SAS-i DO-silmuste tüübid:

  • Indeks : Silmus jätkub algväärtusest kuni indeksmuutuja stop väärtuseni.
  • Kuigi : Silmus jätkub seni, kuni Kuigi seisund muutub valeks.
  • Kuni : Silmus jätkub kuni Kuni tingimus saab tõeks.

Tehke indekssilmus

Kasutame indeksi muutujat alguse ja lõpu väärtusena Tehke indekssilmus . SAS-i lauseid täidetakse korduvalt, kuni indeksmuutuja saavutab oma lõpliku väärtuse.
Süntaks:

Kas indexvariable = algväärtus kuni finalvalue SAS-i lausete lõpp

Vaatame Do Index Loopi mõistmiseks proovikoodi. Allpool toodud koodis on VAR indeksmuutuja.

DATA SampleLoop SUM = 0 Tehke VAR = 1 kuni 10 SUM = SUM + VAR END PROC PRINT DATA = SampleLoop Run

Ülaltoodud koodi käivitamisel saate järgmise väljundi.

Tehke silmuse ajal

The Tehke samal ajal loop kasutab WHILE tingimust. See silmus käivitab koodiploki, kui tingimus on tõene, ja jätkab selle täitmist, kuni tingimus muutub valeks. Kui tingimus muutub valeks, lõpetatakse silmus.

Süntaks:

Do While (tingimus) SAS-i laused lõppevad

Koodinäidise järgimine aitab teil silmust DO WHILE mõista.

ANDMED Proovisilmus SUM = 0 VAR = 1 Tee samas (VAR<15) SUM = SUM + VAR VAR+1 END PROC PRINT DATA = SampleLoop Run 

Ülaltoodud kood annab teile järgmise väljundi.

Tehke kuni aasani

Tehke kuni silmus kasutab Kuni tingimus. See silmus täidab koodiploki, kui tingimus on vale, ja jätkab selle täitmist, kuni tingimus saab tõeks. Kui tingimus saab tõeks, lõpetatakse silmus.

Süntaks:

kuidas segada andmeid tabelisse
Tehke kuni (tingimus) SAS-i avaldused LÕPP

Heitkem pilk näidisprogrammile.

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

Koodil on järgmine väljund.

Seega oleme SAS-i programmeerimisel lõpetanud silmuste kontseptsiooni. Kõik seni uuritud teemad on rääkinud SAS-i programmeerimise põhitõdedest üldiselt.

Vaatame nüüd statistilisi protseduure. Need protseduurid on aluseks edasijõudnutele analüütilised protseduurid.

Uute värskenduste saamiseks tellige meie youtube'i kanal ..!

Statistilised põhiprotseduurid SASi abil

PROC TÄHENDAB

Seda protseduuri kasutatakse aritmeetilise keskmise ja standardhälbe arvutamiseks. Inimestele, kes on statistikas uued, võib olla keeruline nendest terminitest aru saada. Nii et enne kui hakkame kodeerima ja seda protseduuri kasutama. Püüan selgitada, mida need mõisted tähendavad.

Alustame aritmeetilise keskmisega ja vaatame, kuidas PROC MEANS-i SAS-i programmeerimisel selle arvutamiseks kasutatakse.

Aritmeetiline keskmine

Numbriliste muutujate väärtuse summa jagatuna muutujate arvuga annab teile aritmeetiline keskmine . Seda nimetatakse ka keskmiseks ja see on keskse tendentsi mõõdupuu. Tsentraalse tendentsi mõõt on üks väärtus, mis püüab kirjeldada andmekogumit, tuvastades selle andmekogumi keskse positsiooni.

SAS-i programmeerimisel kasutate aritmeetilise keskmise arvutamiseks PROC MEANS-i. See protseduur võimaldab teil leida kõigi muutujate või andmekogumi väheste muutujate keskmise. Samuti saate moodustada rühmi ja arvutada sellele rühmale iseloomulike muutujate keskmise.

Süntaks:

PROC MEANS DATA = DASASET klassi muutujad muutuja muutuja
  • Muutujad : Ülaltoodud süntaksis olevad muutujad tähistavad andmekogumi muutujaid, mille keskmine arvutatakse.

Andmekogumi keskmine

Kui saesitage ainult andmekogumi nimi ilma muutujateta, saate arvutada kõigi andmekogumi muutujate keskmise.

Heitkem pilk koodi näidisele. Olen pidanud eelnevalt määratletud SAS-i andmekogumit, mida nimetatakse autodeks. Järgmine käsk kuvab andmekogumi.

PROC PRINT data = sashelp. CARS Run

Alloleval pildil on näidatud ülaltoodud koodi väljund.


Kasutagem nüüd seda andmekomplekti koodi ja arvutame iga andmekogumi muutuja keskmise‘Autod’.

PROC MEANS DATA = sashelp. CARS keskmine SUM MAXDEC = 2 käivita

Alloleval pildil on kõigi andmekogumi muutujate keskmine kahe kümnendkohani.

Valitud muutujate keskmine

Variandis Var pakkudes nimed, saate määratud muutujate keskmise. Palun vaadake allolevat koodi.

PROC MEANS ANDMED = sashelp. CARS tähendab summat MAXDEC = 2 hobujõulist silindrit

Keskmine klassi järgi

Numbriliste muutujate keskmise leiad, korraldades need rühmadessemingi parameeter nende rühmitamiseks.Kaaluge järgmise näidiskoodi kasutamist. Võimaldab välja selgitada erinevate hobuste hobujõu keskmise, jaotatuna erinevate autode klasside „mark” ja „tüüp” järgi.

PROC MEANS DATA = sashelp. CARS MEANS SUM MAXDEC = 2 klassi mark type var hobujõudu Run

Alloleval pildil on näidatud ülaltoodud koodi väljund.

Jätkame oma SAS-i programmeerimisblogiga ja heidame pilgu veel ühele olulisele statistikamõistele.

Standardhälve

Standardhälve (SD) on mõõdik selle kohta, kui erinevad on antud andmekogumi andmed. Matemaatiliselt ütleb see teile, kui lähedal on iga andmepunkt andmekogumi keskmisele väärtusele. Kui standardhälbe väärtus on lähedal 0, näitab see, et andmepunktid on andmekogumi keskmisele väga lähedased ja suur standardhälve näitab, et andmepunktid on jaotatud laia väärtuste vahemikku.

SAS-is saate standardhälbe väärtuse arvutada kahe protseduuri abil. Nemad on:

  • PROC TÄHENDAB
  • KÜSITLEJAD

Standardhälve PROC MEANS abil

Standardhälvet saate mõõta proc-vahendite abil, peate valima TUNNID samm PROC. See kuvab andmekogumi iga numbrilise muutuja standardhälbe väärtused.

Süntaks:

PROC MEANS DATA = andmekogum STD

Mõelge sellele näidiskoodile, loome SASHELP-i teeki CARS-i andmekogumist veel üks andmekogum CARS1. Selleks laseme meil kasutada PROC SQL-i protseduuri. Rühmitagem andmed autode tüübi ja marki abil ning arvutage valitud muutujate standardhälve, kasutades valikut STD ja sammu PROC tähendab.

PROC SQL loo tabel CARS1 kui SELECT mark, tüüp, hobujõud, silindrid, kaal SASHELP-ist. Autod, kuhu sisse sõidetakse ('Audi', 'BMW') KÄIVITA PROC TÄHENDAB ANDMEID = CARS1 STD Run

Ülaltoodud kood annab valitud muutujate standardhälbe. Järgmisel pildil kuvatakse väljund.

PROC KÜSITLEJAD

Seda protseduuri kasutatakse standardhälbe mõõtmiseks koos mõnede eelfunktsioonidega, nagu kategooriliste muutujate standardhälbe ja dispersiooni mõõtmine.

Süntaks:

PROC SURVEYMEANS valikud statistika-märksõnad muutujate järgi Klassimuutujad Muutujad

Allpool on kasutatud parameetrite kirjeldus:

mida puhverdaja teeb javas
  • Kõrval tähistatakse vaatluste rühmade loomiseks kasutatud muutujate tähistamiseks.
  • Klass tähistab kategooriliste muutujate jaoks kasutatud muutujaid.
  • Kus tähistab muutujaid, mille jaoks SD arvutatakse.

Heitkem pilk sellele näidiskoodile, mis kirjeldab klassi parameetri kasutamist, mis loob statistika klassi muutuja kõigi väärtuste kohta.

PROC KÜSITLEJATE ANDMED = CARS1 STD klassi tüüp Var tüüpi hobujõud ods väljundstatistika = ristkülik Run PROC PRINT DATA = ristkülik Run

Allolevatel piltidel on näha ülaltoodud koodi väljund. See näitab muutuja „Hobujõud” andmete jaotust 95% usaldusintervalli puhul. (Usaldusvahemik tähendab nii määratletud väärtuste vahemikku, et on kindel tõenäosus, et parameetri väärtus jääb selle sisse.)

Nii jõuame SAS-i programmeerimisblogi lõppu. Kui teil on mingeid kahtlusi või probleeme blogi sisuga, jätke need kommentaaride jaotisesse, ma lahendan need kõige varem ja vastan tagasi.

Kui soovite õppida SAS-i ja luua karjääri analüüsi valdkonnas, vaadake meie mis on varustatud juhendajate juhitud elava koolituse ja reaalse elu projektikogemusega. See koolitus aitab teil SASist põhjalikult aru saada ja aitab omandada erinevaid SAS-i programmeerimiskeele mõisteid.

Kas teil on meile küsimus? Palun mainige seda kommentaaride jaotises ja võtame teiega ühendust.