SAS-makrot aloittelijoille – makromuuttujat ja funktiot

Tänään keskustelemme SAS-makroista aloittelijoille ja siitä, miten SAS-makro tekee elämästämme helpompaa vähentämällä koodin tarpeettomuutta tai toistuvuutta. SAS-makro tarjoaa uskomattoman tavan tehdä prosessista helppo ja automaattinen. Tässä näemme erilaisia SAS-makro-muuttujia, makrojen toimintoja SAS-ohjelmointikielessä. Lisäksi opettelemme SAS-makro-koodin osat ja joitakin SAS-makron etuja

Katsotaanpa, miten SAS-makro toimii.

Älä vanhentuisi & saat vaaleanpunaisen lipsahduksen
Seuraa DataFlairia Google-uutisissa & Pysy kärjessä

1. Mikä on SAS-makro?

Makrot auttavat periaatteessa käyttämään koodia uudelleen eri paikoissa useita kertoja ilman, että koko koodia tarvitsee kirjoittaa uudelleen ja uudelleen. Tämä ei ainoastaan säästä aikaa, vaan johtaa myös virheettömään koodiin.

Ymmärretään tämä esimerkin avulla:

proc print data=Policysnapshot;where policydate='09Sep14'd;title "Below are the policy detail for 09-Sep-14";Run;

Yllä oleva SAS-koodi on kirjoitettu poimimaan politiikkatason yksityiskohtia ajalta 09-Sep-14, ja oletetaan, että käyttäjän on ajettava tämä koodi päivittäin sen jälkeen, kun hän on muuttanut päivämäärän (molemmissa paikoissa) nykyiseen päivämäärään.

Katsotaan nyt samaa koodia SAS-makrojen avulla.

Proc Print Data=Sales.Policysnapshot;Where policydate="&sysdate9"d;Title "Below are the policy detail for %sysdate9";Run;

Tässä tapauksessa käyttäjän ei tarvitse antaa arvoa nykyiselle päivämäärälle. Koodi valitsee automaattisesti nykyisen päivämäärän järjestelmästä.

Älkää unohtako lukea – SAS-funktiot

SAS-makrojen käytön edut

SAS-makrojen avulla voimme:-

  • Helpottaa työtämme käyttämällä samankaltaista koodia useaan kertaan uudelleen sen jälkeen, kun se on määritelty kerran.
  • Tehdä muutoksia muuttujaan yhdestä kohdasta ja peilata niitä useampaan eri paikkaan.
  • Ohjaat ohjelmasi dataa, eli annat SAS:n päättää, mitä tehdä todellisten data-arvojen perusteella

Voit ennen kaikkea vähentää SAS-koodin lukemiseen ja kirjoittamiseen vaadittavaa vaivaa.

SAS:n makrokoodin komponentit

SAS:n makrokoodissa on kaksi komponenttia: Makrot ja makromuuttujat. SAS-ohjelmassa niihin on viitattu eri tavoin:-

  • &Nimi viittaa makromuuttujaan
  • %Nimi viittaa makroon

SAS-makromuuttujat

Makromuuttuja on samanlainen kuin tavallinen muuttuja sillä erotuksella, että makromuuttujan arvona ei ole tietosarja, vaan sillä on vain yhden merkin arvo. Makromuuttujan arvo voi olla muuttujan nimi, numero tai mikä tahansa teksti, jonka haluat korvata ohjelmassasi.
Makromuuttujan laajuus voi olla paikallinen tai globaali riippuen siitä, miten olemme sen määritelleet. Jos se on määritelty makro-ohjelman sisällä, sen laajuus on paikallinen (käytettävissä vain kyseisessä makrokoodissa). Jos olemme kuitenkin määritelleet sen ulkopuolella (päärungossa), voimme käyttää sitä missä tahansa SAS-ohjelmassa.
Käytämme %LET-lauseketta makromuuttujien luomiseen ja arvon antamiseen makromuuttujille.
% LET <Makromuuttujan nimi>=arvo;

Makromuuttujan arvo %Let-lauseessa voi olla mikä tahansa merkkijono, ja sillä on seuraavat ominaisuudet:-

  • Se voi olla minkä tahansa pituinen välillä 0-65,534 merkkiä
  • Numeeriset arvot tallennetaan myös merkkijonona
  • Matemaattisia lausekkeita ei evaluoida
  • Lainausmerkki voidaan tallentaa myös osaksi arvoa
  • Johtavat ja perässä olevat tyhjät kohdat poistetaan ennen osoittamista

SAS Makromuuttujiin viitataan käyttämällä yliviivaa (&), jota seuraa makromuuttujan nimi.

Älkää unohtako tarkistaa – SAS:n merkkijonofunktiot vai merkkifunktiot

&<Makromuuttujan nimi>
Esimerkki:-

Makromuuttujan nimi

Voidaan myös julistaa useita makromuuttujia ja käyttää niitä eri paikoissa SAS:n koodissa. Makromuuttuja ei ratkaise, kun niitä käytetään yksinkertaisten lainausmerkkien sisällä. Siksi meidän on käytettävä kaksinkertaisia lainausmerkkejä niihin viittaamiseen.

;

makromuuttuja-1 <…makromuuttuja-n>
on yhden tai useamman SAS-makromuuttujan nimi.

%GLOBAL-lausekkeella luodaan yksi tai useampi globaali makromuuttuja ja annetaan muuttujille nolla-arvot. Globaalit makromuuttujat ovat muuttujia, jotka ovat käytettävissä koko SAS-istunnon tai -työn suorituksen ajan.
%GLOBAL-lauseella luodulla makromuuttujalla on nolla-arvo, kunnes sille annetaan jokin muu arvo. Jos globaali makromuuttuja on jo olemassa ja määrittelet kyseisen muuttujan %GLOBAL-lausekkeessa, olemassa oleva arvo säilyy muuttumattomana.

Must learn – What is SAS Syntax and how we can use them

ii. SAS:n paikalliset makro-muuttujat

Lokaalin makro-muuttujan syntaksi SAS-ohjelmoinnissa:

%LOCAL makromuuttuja-1 <…makromuuttuja-n>;

makromuuttuja-1 <…makromuuttuja-n>
on yhden tai useamman makromuuttujan nimi
%LOCAL-lauseella luodaan yksi tai useampi paikallinen makromuuttuja. %LOCAL-lausekkeella luodulla makromuuttujalla on nolla-arvo, kunnes sille annetaan jokin muu arvo. Paikalliset makromuuttujat ovat muuttujia, jotka ovat käytettävissä vain sen makron suorituksen aikana, jossa ne on määritelty.

Käyttämällä %LOCAL-lauseketta voit varmistaa, että aiemmin ohjelmassa luodut makromuuttujat eivät vahingossa muutu nykyisen makron samannimisille muuttujille annettujen arvojen takia. Jos paikallinen makromuuttuja on jo olemassa ja määrität kyseisen muuttujan %LOCAL-lausekkeessa, olemassa oleva arvo pysyy muuttumattomana.

Käsitteen ymmärtäminen – SAS Data Set – Special & Built-in Data Set in SAS

iii. Vertailu – Globaalit vs. paikalliset muuttujat

  • Kumpikin %LOCAL-lause ja %GLOBAL-lause luovat makromuuttujia, joilla on tietty laajuus. Kuitenkin %LOCAL-lause luo paikallisia makromuuttujia, jotka ovat olemassa vain muuttujan sisältävän makron suorituksen aikana, ja %GLOBAL-lause luo globaaleja makromuuttujia, jotka ovat olemassa koko istunnon tai työn ajan.
  • Jos määrittelet paikallisen makromuuttujan ja globaalin makromuuttujan, joilla on sama nimi, makrotoiminto käyttää paikallisen muuttujan arvoa paikallisen muuttujan sisältävän makron suorituksen aikana. Kun paikallisen muuttujan sisältävää makroa ei suoriteta, makrotoiminto käyttää globaalin muuttujan arvoa.

SAS-makrojen funktiot

Nämä SAS-makrojen funktiot ovat syntaksiltaan samankaltaisia kuin vastaavat funktiot data-askeleissa, ja ne myös palauttavat tuloksia samalla tavalla.

i.%UPCASE()-funktio

Käytämme tätä funktiota muuttaaksemme kirjainten ison alkukirjaimen isoksi:

Syntaksi:- %UPCASE (Argumentti)

Esimerkki:-

%Let heading=this is detail of country;Proc Print Data=Orion.Country;Title %UPCASE(&heading);Run;

Se tulostaa otsikon muotoon ”TÄMÄ ON MAAKUNNAN DETALOINTI”.

Tutustu SAS-ohjelmoinnin huippusovelluksiin

ii. %SUBSTR()-funktio

Tämä funktio palauttaa annetun merkkimäärän määritetystä kohdasta.

Syntaksi:- %SUBSTR (argumentti, asema )
Jos merkkimäärää ei anneta, %SUBSTR-funktio palauttaa merkit annetusta kohdasta merkkijonon loppuun asti.

Esimerkki:-

%Let abc=this is detail of country;%LET def=%SUBSTR(&abc,19,7);Proc Print Data=Orion.Country;Title %Upcase(&def);Run;
Tämä kaikki oli SAS-macro-opetuksessa. Toivottavasti pidät selityksistämme.

Yhteenveto

Tässä SAS-makrojen opetusohjelmassa. Toivottavasti opit uusia tapoja käsitellä dataa SAS:ssa. Voit nyt säästää paljon aikaa sisällyttämällä SAS-makroja ohjelmaasi. Pysy kuulolla oppiaksesi lisää tällaisia mielenkiintoisia asioita SAS:ssa.

Vastaa

Sähköpostiosoitettasi ei julkaista.