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:
- SAS-i programmeerimise alused
- SASi koodistruktuur
- Informaatid ja vormingud SAS-is
- SAS-i aasad
- Statistilised põhiprotseduurid SASi abil
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.
- 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.