SAS programozás - Ismerje meg, hogyan kell kódolni az SAS-ban!

Ez a SAS programozási blog bemutatja a SAS programozási koncepcióit, és példákkal segít megérteni a SAS különféle alapjait.

Ebben a blogban bemutatom Önnek a SAS programozás néhány fontos fogalmát. Mielőtt elkezdenénk, fontos, hogy megismerje az SAS-t. Az előző blogom a SAS bemutató segít megérteni a SAS-t, az alkalmazásait, és segít a SAS University Edition telepítésében, amelyet itt programozási környezetként használnánk. Kíváncsi arra, hogy mik a készségek, ebben az évben el kell sajátítania? Továbbá, ha azt tervezi, hogy belép az Adatelemzésbe, az egyik legjobb módja annak, hogy ugyanezzel kezdjünk.



Megjelent az Edureka 2019 Tech Karrier Útmutató! A legforróbb munkakörök, pontos tanulási utak, iparági kilátások és egyebek az útmutatóban. Letöltés Most.



Tehát minden további nélkülkésleltetés,kezdjük a SAS programozással, igaz?

Ez a blog segít megérteni a következő témákat:



Mielőtt elkezdenénk a kódolást, szeretnék tájékoztatni néhány fontos kifejezéssel, amelyek fontosak a SAS programozása szempontjából.

A SAS programozásának alapjai

SAS Windows

Nagy szervezetek és képző intézetek inkább az SAS Windows használatát használják. A SAS Windows számos segédprogrammal rendelkezik, amelyek segítenek csökkenteni a kódok írásához szükséges időt.

Az alábbi képen láthatók a SAS Windows különböző részei.



SAS-Windows - SAS programozás - Edureka

  • Napló ablak : Ez egy végrehajtási ablak. Itt ellenőrizheti a program végrehajtását. Ezenkívül hibákat, figyelmeztetéseket és megjegyzéseket is megjelenít.
  • Kód ablak :Ezt az ablakot szerkesztőablaknak is nevezik. Tekintsük üres papírnak vagy jegyzettömbnek, ahová beírhatja SAS-kódját.
  • Kimeneti ablak : Ahogy a neve is sugallja, ebben az ablakban megjelenik a szerkesztőbe írt program / kód kimenete.
  • Eredmény ablak : Ez egy index, amely felsorolja az egy munkamenetben futtatott programok összes kimenetét. Mivel az adott munkamenet eredményeit tárolja, ha bezárja a szoftvert és újraindítja, az eredményablak üres lesz.
  • Explore Window : Megtartja a rendszer összes könyvtárának listáját. Itt is böngészhet a rendszer által támogatott fájlokban.

Néhány szervezet Linuxot használ, azonban grafikus felhasználói felület nélkül minden lekérdezéshez kódot kell írni. Ezért kényelmetlen használni.

SAS adatkészletek

A SAS-adathalmazokat adatfájloknak hívják. Az adatfájlok sorokból és oszlopokból állnak. A sorok megfigyeléseket, az oszlopok pedig megtartjákVáltozó nevek.

SAS-változók

A SAS kétféle változóval rendelkezik:

  • Numerikus változók : Ez az alapértelmezett változótípus. Ezeket a változókat matematikai kifejezésekben használják.
  • Karakterváltozók :A karakterváltozókat olyan értékekhez használják, amelyeket nem használnak matematikai kifejezésekben.
    Szövegként vagy karakterláncként kezelik őket. Egy változó karakterváltozóvá válik az a hozzáadásával’$’ Signa változó neve végén.

SAS könyvtárak

A SAS-könyvtár SAS-fájlok gyűjteménye, amelyek ugyanabban a mappában vagy könyvtárban vannak tárolva a számítógépen.

  • Ideiglenes könyvtár : Ebben a könyvtárban az adatkészlet törlődik, amikor a SAS munkamenet befejeződik.
  • Állandó könyvtár : Az adathalmazokat véglegesen menti. Ezért egész munkamenetben elérhetők.

A felhasználók a kulcsszó használatával létrehozhatnak vagy definiálhatnak egy új könyvtárat, amelyet felhasználói könyvtáraknak neveznek LIBNAME . Ezek szintén állandó könyvtárak.

php print_r karakterláncra

SAS programozás: SAS kódszerkezet

A SAS programozása két építőelemen alapul:

  • DATA lépés : A DATA lépés létrehoz egy SAS adatsort, majd továbbítja az adatokat egy PROC lépésbe
  • PROC lépés : A PROC lépés feldolgozza az adatokat

A SAS programnak az alábbi szabályokat kell követnie:

  • Szinte minden kód DATA-val vagy PROC-lépéssel kezdődik
  • A SAS kód minden sora pontosvesszővel végződik
  • A SAS kód RUN vagy QUIT kulcsszóval végződik
  • A SAS kódok nem különböztetik a kis- és nagybetűket
  • Írhat kódot különböző sorokra, vagy írhat több utasítást is egy sorba

Most, hogy láttunk néhány alapvető terminológiát, kezdjük el az SAS programozását ezzel az alapkóddal:

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

A fenti kódban létrehoztunk egy adatkészletet, amelynek neve Employee_Info. Három változója van, egy numerikus változó Emp_Id néven és két karakter változó Emp_Name és Emp_Verticals néven. A Futtatás parancs megjeleníti az adatkészletet a Kimenet ablakban.

Az alábbi kép a fenti kód kimenetét mutatja.

Tegyük fel, hogy nyomtatási nézetben szeretné látni az eredményt, és ezt megteheti egy PROC PRINT eljárás használatával, a többi kód ugyanaz marad.

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

Az alábbi képen látható a fenti kód kimenete.

Most létrehoztunk egy adatsort, és megértettük a PRINT eljárás működését. Most vegyük a fenti adatsort, és használjuk a további programozáshoz. Tegyük fel, hogy hozzá akarjuk adni az alkalmazott csatlakozási dátumát az adatkészlethez. Így létrehozunk egy DOJ nevű változót, megadjuk bemenetként és kinyomtatjuk az eredményt.

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ datalines 101 Mak SQL 2013.08.18. 102 Rama SAS 2015.06.25. 103 Priya Java 2010.02.21. 104 Karthik Excel 2007.05.19. 105 Mandeep SAS 2016.09.11. Futtassa a PROC PRINT DATA = Employee_Info futtatást

Az alábbi kép a fenti kód kimenetét mutatja. Látható, hogy változó jött létre, de a DOJ értékét nem nyomtatták ki. Ehelyett azt látjuk, hogy pontok váltották fel a dátumértékeket.


Miért történt ez? Nos, a DOJ változó „$” utótag nélkül van, vagyis alapértelmezés szerint a SAS numerikus változóként fogja olvasni. De, a beírt adatoknak speciális karakterük van /, ezért nem nyomtatják ki az eredményt, mivel nem pusztán numerikus adatok. Ha bejelöli a naplóablakot, egy hibaüzenet jelenik meg, amely „érvénytelen adat a DOJ változóhoz”

Most hogyan oldjuk meg ezt a problémát? Nos, a megoldásának egyik módja az, hogy a DOJ változóhoz „$” utótagot használ. Ez átalakítja a DOJ változót karakterré, és kinyomtathatja a dátumértékeket. Végezzük el a kód módosítását, és nézzük meg a kimenetet.

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ $ datalines 101 Mak SQL 2013.08.18. 102 Rama SAS 2015.06.25. 103 Priya Java 2010.02.21. 104 Karthik Excel 2007.05.19. 105 Mandeep SAS 11/09 / 2016 futtatás PROC PRINT DATA = Employee_Info futtatás

A kimeneti képernyőn a következő kimenet jelenik meg.


Láthatja, hogy az adatértékek dátumként jelennek meg a DOJ karakterré alakításával. Ez azonban ideiglenes megoldás. Hadd magyarázzam el, hogyan?

Nos, képzelje el, hogy egy banknak van hasonló adatkészlete. Az adatkészlet olyan számlatulajdonos adatait tartalmazza, mint a kölcsön összege, törlesztőrészletek,ésa hitel törlesztőrészletének esedékessége. Képzelje el, hogy a tulajdonos elmulasztotta a részletfizetési határidőt, és a bank ki akarja számolni a késedelmet. A banknak ki kell számolnia a határidő és az aktuális dátum közötti különbséget.

De, ha a bank adatkészletének karakteres formátumú dátumai vannak, akkor a bank nem lesz képes matematikai műveleteket végrehajtani rajta. Ez a probléma az adatkészletünket is érintheti. Tehát hogyan oldjuk meg ezt a problémát?

A következő koncepció segít leküzdeni ezt a problémát.

Informátumok és formátumok az SAS-ban

Fontos, hogy jól megértsd ezt a témát, ha jó akarsz lenni a SAS programozásában.Ha emlékszel, korábban említettem, hogy az SAS-nak két standard változótípusa van:

  • Numerikus
  • karakter

Amikor az SAS nem szabványos változókra bukkan, a SAS hibát dob, különben nem kapja meg a kívánt kimenetet. Ennek a problémának a leküzdésére a SAS használjaTájékozottés formátumok.

Tudj meg többet

Az informátumokat általában külső fájlokból vagy lapos fájlokból (példáulszöveges vagy szekvenciális fájlok). Az informat utasítja az SAS-t az olvasás módjáraadatok SAS-változókba. A SAS-nak háromféle Informátusa van:karakter, numerikus és dátum / idő. Az informátumok megnevezése a következők szerint történikszintaxis felépítése:

  • Karakterinformat: $ INFORMATw.
  • Numerikus tájékoztatás: INFORMATw.d
  • Tájékoztatás dátuma / ideje: INFORMATw.

A „$” karakterinformátumot jelöl. Az INFORMAT az olykor opcionálisra hivatkozikSAS információ neve. A „w” a szélességet (bájtokat vagy oszlopok számát) jelöliváltozó. A „d” -et numerikus adatokra használjuk, hogy meghatározzuk a jobb oldali számjegyek számáta tizedesjegy. Minden informátumnak tartalmaznia kell egy tizedesjegyet (.), Hogy a SAS képes legyen rá
megkülönböztetni egy informátust az SAS változótól.

Térjünk vissza az előző kódunkra, és nézzük meg, hogy a Dátum / Idő Informat segít-e bennünket. Tehát változtassuk meg a kódot ennek megfelelően, és adjunk hozzá egy Date Informat-ot az alábbiak szerint:

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ INFORMAT DOJ ddmmyy10. datalines 101 Mak SQL 2013.08.18. 102 Rama SAS 2015.06.25. 103 Priya Java 2010.02.21. 104 Karthik Excel 2007.05.19. 105 Mandeep SAS 2016.09.11. Futtatás PROC PRINT DATA = Employee_Info Run

A kód 3. sora arra utasítja az SAS-t, hogy olvassa el a „csatlakozás dátuma” (DOJ) változót a dátum használatával
informat MMDDYYw. Ha minden dátummező 10 szóközt foglal el, akkor a „w.” Minősítés10-re állítva.

A kód kimenete a következőképpen nézne ki.

Az eredmény azt mutatja, hogy még mindig nincs meg a kívánt eredmény, ehelyett a DOJ oszlop néhány számértéket tart, és nem az általunk megadott dátumokat. Miért van ez? Nos, ha a dátumot elolvassák egy dátuminformátummal, a SAS számként tárolja a dátumot. Ez azt jelenti, hogy a dátum és 1960. január 1-je közötti napok számaként értelmezik (Például: 1994. 03. 15-én 12492-ként tárolják).

Ennek oka az, hogy a SAS-nak három külön számlálója van, amelyek nyomon követik a dátumokat és az időt. Ezek a dátumszámlálók nullán kezdődtek 1960. január 1-jén. Ezért 1960. január 1-je előtti dátumok negatív értékekkel bírnak, és minden későbbi dátum pozitív értékkel bír. Minden nap éjfélkor a dátumszámláló eggyel növekszik.

Az egyik történet szerint az SAS alapítói az IBM 370 rendszer hozzávetőleges születési dátumát akarták használni, és 1960. január 1-jét választották könnyen megjegyezhető közelítésként.

Most, hogy ismeri az okot, amiért a DOJ oszlop megjelenítette ezeket a számokat, próbáljuk meg megoldani ezt a problémát. Ennek a problémának a leküzdésére a Formátumot használjuk.

Formátum

Az informátumok az adatok olvasására vonatkozó utasítások, míg a formátumok az illkimeneti adatok.A változó formátumának megadásával utasíthatja az SAS-t, hogy jelenítse meg az értékeket a változóban. A formátumok ugyanabba a három osztályba vannak csoportosítva, mint az informátumok (karakter, numerikus és dátum-idő), és mindig tartalmaznak egy pontot is.

A formátum-utasítás általános formája:

  • FORMAT változó-név FORMAT-NAME.

Térjünk vissza az Employee_Info adatkészlettel rendelkező kódunkhoz, hogy lássuk, helyesen tudjuk-e megjeleníteni a dátumot a FORMAT paranccsal.

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ INFORMAT DOJ ddmmyy10. FORMÁT DOJ ddmmyy10. datalines 101 Mak SQL 2013.08.18. 102 Rama SAS 2015.06.25. 103 Priya Java 2010.02.21. 104 Karthik Excel 2007.05.19. 105 Mandeep SAS 2016.09.11. Futtatás PROC PRINT DATA = Employee_Info Run

A fenti kódban a 4. sorban a FORMAT parancsot használtuk. A következő kimeneti képernyő megadja nekünk a kívánt kimenetet.

Sikeresen megjelenítettük az adatkészletet a Date format paranccsal. Remélem, megértette a formátum és az informatika használatát. Haladjunk tovább SAS programozási blogunkkal, és vessünk egy pillantást egy másik fontos koncepcióra.

SAS hurkok

A SAS programozás során olyan helyzetekkel találkozhatunk, amikor ismételten végrehajtanunk kell atöbbszörös kódblokk. Kényelmetlen ugyanazokat az állításokat újra és újra megírni. Itt jönnek létre a hurkok. Az SAS-ban a Do utasítás a hurkok megvalósítására szolgál. Do Loop néven is ismert. Az alábbi képen aa Do loop utasítások általános formája az SAS-ban.

Az alábbiakban a DO hurkok típusai láthatók az SAS-ban:

  • Index : A hurok a kezdőértéktől az indexváltozó leállási értékéig folytatódik.
  • Míg : A hurok addig folytatódik, amíg a Míg az állapot hamissá válik.
  • Amíg : A hurok a -ig folytatódik Amíg feltétel igazsá válik.

Tegye az index ciklust

Indexváltozót használunk kezdő és leállító értékként Tegye az index ciklust . Az SAS utasításokat addig hajtják végre, amíg az index változó el nem éri a végső értékét.
Szintaxis:

Végezze el az indexváltozó = kezdeti érték a végső értékig SAS utasítások vége

Vessünk egy pillantást a kód kódjára, hogy megértsük a Do Index Loop funkciót. Az alábbi kódban a VAR az index változó.

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

A fenti kód végrehajtásakor a következő kimenetet kapja.

pmi-acp megéri

Csináld, amíg hurok

Az Csinálni, miközben a ciklus WHILE feltételt használ. Ez a hurok akkor hajtja végre a kódblokkot, amikor a feltétel igaz, és addig hajtja végre, amíg a feltétel hamisá nem válik. Amint a feltétel hamis lesz, a hurok megszűnik.

Szintaxis:

A Do (feltétel) SAS utasítások vége

A kódminta követése segít megérteni a DO WHILE ciklust.

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

A fenti kód a következő kimenetet adja.

Tedd a hurokig

A Addig ciklus egy Amíg feltétel. Ez a hurok akkor hajtja végre a kódblokkot, amikor a feltétel hamis, és addig hajtja végre, amíg a feltétel igaz lesz. Amint a feltétel igaz lesz, a hurok megszűnik.

Szintaxis:

Csináljon (feltétel) SAS utasítások VÉGE

Vessünk egy pillantást a mintaprogramra.

DATA SampleLoop SUM = 0 VAR = 1 Addig (VAR> 15) SUM = SUM + VAR VAR + 1 END PROC PRINT Futtatás

A kód a következő kimenettel rendelkezik.

Így befejeztük a hurkok fogalmát az SAS programozásában. Az összes eddig vizsgált téma a SAS programozás alapjairól szólt.

Most nézzünk meg néhány statisztikai eljárást. Ezek az eljárások alapot képeznek a haladók számára analitikai eljárások.

Iratkozzon fel youtube csatornánkra, hogy új frissítéseket kapjon ..!

Alapvető statisztikai eljárások az SAS használatával

PROC azt jelenti

Ezt az eljárást használják a számtani átlag és a szórás kiszámítására. Azok számára, akik újak a statisztikákban, nehezen érthetik meg ezeket a kifejezéseket. Tehát mielőtt elkezdenénk a kódolást és használnánk ezt az eljárást. Megpróbálom elmagyarázni, mit jelentenek ezek a kifejezések.

Kezdjük a számtani átlaggal, és nézzük meg, hogyan használják a PROC MEANS-t a SAS programozásában annak kiszámításához.

Számtani átlaga

A numerikus változók értékének összege, elosztva a változók számával, megadja a számtani átlaga . Közepes néven is ismert, és a központi tendencia mértéke. A központi tendencia mértéke egyetlen olyan érték, amely megkísérli leírni az adatsort, meghatározva az adott adatsoron belüli központi pozíciót.

A SAS programozás során a PROC MEANS segítségével számolja ki a számtani átlagot. Ez az eljárás lehetővé teszi, hogy megtalálja az összes változó vagy néhány változó átlagát. Létrehozhat csoportokat is, és kiszámíthatja az adott csoportra jellemző változók átlagát.

Szintaxis:

PROC MEANS DATA = DATASET Osztályváltozók Változóváltozók
  • Változók : A fenti szintaxisban szereplő változók az adatkészlet azon változóit jelölik, amelyek átlagát ki kell számítani.

Jelentése egy adatkészletnek

Ha teCsak az adatkészlet nevét adja meg változók nélkül, kiszámíthatja az adatkészlet összes változójának átlagát.

Vessünk egy pillantást egy minta kódra. Úgy tekintettem, hogy egy előre definiált SAS-adathalmaz „autóknak” nevezett. A következő parancs megjeleníti az adatkészletet.

PROC PRINT adatok = sashelp.CARS Futtatás

Az alábbi kép a fenti kód kimenetét mutatja.


Most használjuk ezt az adatkészlet kódot, és számítsuk ki az adatsor egyes változóinak átlagát„Autók”.

PROC MEANS DATA = sashelp. CARS átlag SUM MAXDEC = 2 futtatás

Az alábbi kép az adatkészlet összes változójának átlagát mutatja két tizedesjegyig.

A kiválasztott változók átlaga

A Var opcióban a nevek megadásával megszerezheti a megadott változók átlagát. Kérjük, olvassa el az alábbi kódot.

PROC MEANS DATA = sashelp. A CARS átlag SUM MAXDEC = 2 var lóerős henger fut

Mean By Class

Megtalálhatja a numerikus változók átlagát, ha a csoportokkal csoportosítja őketnéhány paraméter a csoportosításhoz.Fontolja meg a következő mintakódot. Megtudhatjuk a lóerő átlagát a különböző csoportok számára, a különböző autók „gyártmánya” és „típusa” kategóriákba sorolva.

PROC MEANS DATA = sashelp. CARS MEANS SUM MAXDEC = 2 osztály gyártási típus lóerő Futás

Az alábbi képen látható a fenti kód kimenete.

Folytassuk a SAS Programming blogunkat, és vessünk egy pillantást egy másik fontos statisztikai koncepcióra.

Szórás

A szórás (SD) annak mérése, hogy az adott adatsor adatai mennyire változatosak. Matematikailag elmondja, hogy az egyes adatpontok milyen közel vannak az adatkészlet átlagértékéhez. Ha a szórás értéke közel van a 0-hoz, ez azt jelzi, hogy az adatpontok nagyon közel vannak az adatkészlet átlagához, és a magas szórás azt jelzi, hogy az adatpontok széles értéktartományban vannak elosztva.

Az SAS-ban két eljárással számíthatja ki a szórás értékét. Ők:

  • PROC azt jelenti
  • FELMÉRŐK

Szokásos eltérés a PROC MEANS használatával

Mérheti a szórást a proc eszközökkel, ki kell választania a ÓRÁK opciót a PROC lépésben. Megjeleníti az adatkészlet minden numerikus változójának a standard deviáció értékeit.

Szintaxis:

PROC MEANS DATA = adatkészlet STD

Tekintsük ezt a mintakódot, hozzunk létre egy másik CARS1 adatsort a SASHELP könyvtárban található CARS adathalmazból. Ehhez használjuk a PROC SQL eljárást. Csoportosítsuk az adatokat a gépkocsik „típusa” és „gyártmánya” felhasználásával, és az STD opcióval számítsuk ki a szórást a kiválasztott változókra a PROC jelenti lépésben.

A PROC SQL hozza létre a CARS1 táblázatot, mint SELECT gyártmány, típus, lóerő, hengerek, tömeg a SASHELP-ből. Autók, ahol készülnek ('Audi', 'BMW') RUN PROC ADANS = CARS1 STD Run

A fenti kód standard eltérést ad a kiválasztott változókhoz. A következő kép megjeleníti a kimenetet.

PROC FELMÉRŐK

Ezt az eljárást a standard deviáció mérésére használják, néhány további funkcióval együtt, például a kategorikus változók és a variancia szórásának mérésével.

Szintaxis:

PROC SURVEYMEANS opciók statisztika-kulcsszavak változók szerint Változók osztályváltozók Változóváltozók

Az alábbiakban bemutatjuk az alkalmazott paramétereket:

  • Által a megfigyelési csoportok létrehozásához használt változók megjelölésére szolgál.
  • Osztály a kategorikus változókhoz használt változókat jelöli.
  • Hol azt a változót jelöli, amelyre az SD-t kiszámítják.

Vessünk egy pillantást erre a mintakódra, amely leírja az osztályparaméter használatát, amely létrehozza az osztályváltozó egyes értékeinek statisztikáját.

PROC FELMÉRŐ ADATOK = CARS1 STD Osztálytípus Var típusú lóerő ods kimeneti statisztika = téglalap Futtatás PROC PRINT DATA = téglalap Futtatás

Az alábbi képek a fenti kód kimenetét mutatják. A „lóerő” változó adatainak megoszlását mutatja 95% -os konfidencia intervallumra. (A konfidencia intervallum olyan értéktartományt jelent, amely annyira meghatározott, hogy van egy meghatározott valószínűség, hogy egy paraméter értéke benne van.)

Tehát ezzel eljutottunk a SAS programozási blog végéhez. Ha bármilyen kétsége van vagy problémája merülne fel a blog tartalmával kapcsolatban, kérjük, hagyja őket a megjegyzés rovatban. Leghamarabb megoldom és válaszolok.

Ha meg akarja tanulni a SAS-t és karriert kíván kialakítani az analitikai tartományban, akkor nézze meg a következőt: amely oktató által vezetett élő képzéssel és valós projekt-tapasztalattal jár. Ez a képzés segít megérteni a SAS-t mélyebben és elsajátítani a SAS programozási nyelvének különböző fogalmait.

Van egy kérdésünk? Kérjük, említse meg a megjegyzések részben, és mi kapcsolatba lépünk Önnel.