Det gode SAS-program #20: Begræns antallet af steps og få hurtigere svartid

0

SAS er vidunderligt let at arbejde med. Man løser sin opgave iterativt med et step ad gangen. Det gør det lettere at løse opgaven. Men når man er færdig med opgaven, bør man revidere programmet og reducere antallet af steps for at gøre koden lettere at overskue og hurtigere at udføre.

Vi anbefaler:

  1. Løs din opgave iterativt; dan koden trin for trin
  2. Revider dit program og reducer antallet af steps

Eksempel

Der er rigtig mange måder, hvorpå man kan undgå at lave ekstra steps i SAS. Her kommer et eksempel, hvor vi udnytter, at man i et PROC-kald kan styre input og output. Tabellen SASHELP.CITIYR indeholder 10 rækker og 7 kolonner. Vi vil gerne transformere den til 2 rækker og kun beholde data fra 2 af de oprindelige kolonner. Det gør man med den super smarte PROC TRANSPOSE.

Dgs#20.1

Denne opgave løser vi med følgende kode, hvor vi har et DATA step før PROC TRANSPOSE for at forberede data og et DATA step efter TRANSPOSE for at fjerne uønskede kolonner og omdøbe variabel-navne.

Dgs#20.2

Denne kode læser/skriver data seks gange. I dette tilfælde gør det ikke noget, da der kun er få rækker. Men hvis nu grunddata havde indeholdt mange rækker, ville det være smart at gøre det hele på én gang med kun én læsning af data og én skrivning af data. Denne løsning følger herunder.

Dgs#20.3

Bemærk også, hvordan jeg skriver RENAME option. Syntaksen ovenfor er ny og er mulig i nyere versioner af SAS.

Koden kan du hente på www.SASCommunity.dk.

 

Georg

Det gode SAS-program indeholder anbefalinger, der løbende vil blive revideret – giv os gerne feedback, hvis du har forslag til forbedringer.
Share

About Author

Georg Morsing

Education Director

Georg Morsing, SAS Community Senior Manager, har arbejdet med SAS-software siden 1981. Først på Statistisk Kontor i Københavns Kommune og siden 1985 hos SAS Institute. Georg har en bred og dyb erfaring med anvendelse af SAS-software fra stillinger som uddannelseschef, konsulentchef og softwareudviklingschef. Georg har ansvar for faglige netværk og brugerkonferencer i Danmark. Her på bloggen giver han tips og tricks til optimal og effektiv SAS-programmering.

Leave A Reply

Back to Top