- Ofte kan man ikke bruge data direkte som det ligger i input, fx statistikbank tabeller det skal transformeres - Transformation af data er fx nødvendigt hvis data - Er disaggregeret - Har manglende observationer - Har brud - Mangler skøn på seneste år - Det kan også være nødvendigt, at beregne afledte størrelser ud fra det oprindelige kildedatasæt. 1
Rækken af kommandoer for at transformere data kan fylde meget. Flere hundrede linjer eller mere. Tidsbesparende ikke at skulle skrive hele rækken af kommandoer og genopfinde beregninger, hver gang der er nye data. Gemte kommandoer fungerer også som vigtig dokumentation af beregningsmetoden. 2
Kommandofiler i Gekko To typer filer kan afvikles i Gekko -.gcm filer. Egentlige kommandofiler har som regel en vis længde - Indeholder kun Gekko kommandoer og kommentarfelter - Her foregår det egentlige dataarbejde - Bruges ofte gentagne gange for samme input skal det give samme output - Fungerer også som vigtig dokumentation -.ini filer. Ligger de i arbejdsmappen afvikles de automatisk når Gekko startes op - Indeholder kun Gekko kommandoer og kommentarfelter - Bruges som regel til initialisering af optioner, mappe-stier, makrovariabler, mv. - Mulighed for batch afvikling 3
Eksempel på.gcm fil // Initialisering CLS ; CLOSE * ; CLEAR ; // Lukker alle åbne databanker, clearer work MODE data ; TIME %per1 %per2 ; // per1 og per2 defineret i.ini fil IMPORT <tsd> nah1 ; // Beregninger OPEN <edit> b1 ; // Alle følgende beregninger lægges i Gekko banken b1 SERIES X = VP1D ; // = P.1 Produktion, løbende priser SERIES fx = FP1D ; // = P.1 Produktion, faste priser, kædede værdier SERIES px = X/fX ; // Afledt prisindeks CLOSE * ; // lukker alle banker og gemmer banken b1 i arbejdsbiblioteket 4
Eksempel på indhold i.ini fil Automatisering af dataarbejde 2.2 CLS ;RESET ; OPTION folder bank = c:\adam\bank\ ; // lokal bankmappe OPTION folder gcm = c:\adam\command\ ; // lokale kommandofiler DATE PER0 = 2012 ; // Sidste endelige år DATE PER1 = 2013 ; // Første år i opdatering DATE PER2 = 2015 ; // Sidste år i opdatering VAL ANTAL = 3 ; // Antal år der opdateres STRING OBK = c:\adam\data\obk' ; // OpdateringsBanK; STRING LIST = c:\adam\datop\lister' ; // Listefiler 5
Lister giver med et enkelt middel mulighed for at henvise til grupper af variable eller objekter - bruges fx når der skal udføres samme kommando over et sæt af flere variable. Ofte i kombination med FOR kommandoen. Eksempel på LIST og FOR kommandoerne i Gekko LIST erh = a, b, e, h, o, ne, nf, ng, nz, qf, qs, qz ; FOR i = #erh ; // henvis altid til defineret liste med foranstillet # SERIES px%i = X%i/fX%i ; // Henviser til elementer med %i END ; 6
IF kommandoen giver mulighed for at indføre betingede beregninger. Eksempel på LIST og FOR og IF kommandoerne i Gekko LIST erh = a, b, e, h, o, ne, nf, ng, nz, qf, qs, qz ; FOR DATE yy = 1966 to 2015 ; FOR i = #erh ; IF (fx%i[%yy]==0) ; SERIES px%i[%yy] = px%i[%yy-1]*1.02 ; ELSE SERIES px%i = X%i/fX%i ; END ; END ; END ; 7
Kommentarer i kommandofil skrives enten som // <tekst> Som udkommenterer resten af linjen. Eller /* <tekst> <mere tekst> */ Udkommenterer flere linjer. Alt mellem /* og */ opfattes som kommentar. Gekko fortolker ikke indholdet i kommentarfelter. Kommentarer har en vigtig rolle, da de kan hjælpe på læsbarheden og øge forståelsen af indholdet i kommandofilen. 8
Eksempel på struktur i datarevision/procedure Kommandofiler kan også køre andre kommandofiler. Det kan være en fordel ved store automatiserede kørsler. Fx kan kommandofilen datarev.gcm have følgende indhold Datarev.gcm RUN input.gcm ; // trin1: læser og tjekker input data RUN adamgr.gcm ; // trin2: Omregner til ADAM grupper RUN afledt.gcm ; // trin3: Beregner afledte RUN tilbank.gcm ; // trin4: Skriver beregnede variable til databank Fordelagtigt at opsplitte i trin: - genbrug af kommandoer - klar struktur - enklere at læse og fejlsøge 9
Opsamling - Transformation af data er ofte nødvendig og kan fylde mange linjer - Kommandofiler gemmer beregninger til senere brug og fungerer samtidig som dokumentation - To typer kommandofiler -.gcm egentlig transformation af data. -.ini bruges til initialisering af optioner og makrovariabler - God ide at modulopbygge større kørsler. - Løkker er meget praktiske og kan spare meget skrive/læsetid når der fx skal laves samme beregning over en række variabler. - Kommentarer er vigtigt redskab til at øge læsbarhed af kommandofil. 10