R/MakeAKETimeInstantsTable.R
MakeAKETimeInstantsTable.RdFunktion erstellt Tabellen in einem Format das im Mikrozensus-Quartalsbericht ueblich ist. Die zugehoerigen MZ-Daten werden dabei automatisch dem STAT-Filemanagement entsprechend eingelesen, d.h. diese Funktion funktioniert nur STAT-intern
MakeAKETimeInstantsTable(col, row = NULL, timeInstant, nbw = NULL, lim1 = Inf, markLeft1 = "(", markRight1 = ")", markValue1 = NULL, lim2 = Inf, markLeft2 = "(", markRight2 = ")", markValue2 = "x")
| col | Listenobjekt um Spalten zu definieren, siehe Details. |
|---|---|
| row | Listenobjekt oder NULL um Zeilen zu definieren, siehe Details. |
| timeInstant | numerischer Vektor mit 2 Elementen: c(jahr, quartal). Hier gibt man den Zeitpunkt an auf den sich alle Ergebnisse im weitesten Sinn beziehen sollen, also i.d.R. das aktuellste Quartal. |
| nbw | numerischer Wert: Anzahl an Bootstrap-Gewichten die eingelesen werden soll (z.B. um Rechenzeit beim Aufsetzen der Tabellen zu verkuerzen). |
| lim1 | numerischer Wert: falls |
| markLeft1 | character: wird links zu |
| markRight1 | character: wird rechts zu |
| markValue1 | character oder NULL: falls NULL, wird der jeweilige Wert
von |
| lim2 | numerischer Wert: falls |
| markLeft2 | character: wird links zu |
| markRight2 | character: wird rechts zu |
| markValue2 | character oder NULL: falls NULL, wird der jeweilige Wert
von |
Output ist eine Tabelle in Matrix-Form nach demselben System wie die
meisten Tabellen im MZ-Quartalsbericht - mit durch col und row
definierten Spalten und Zeilen fuer bestimmte Zeitpunkte und Veraenderungen.
col ist eine aus Sublisten bestehende Liste. Jede Subliste steht fuer
eine eigene Spalte der zu erstellenden Tabelle in Matrix-Form und gibt an,
was fuer die entsprechende Spalte berechnet werden soll. Jede Subliste kann
die Argumente fun, TFstring, TFstring2, digits,
var und scaleF enthalten. fun muss dabei gesetzt werden
und zwar auf eine der vier Funktionen GroupSize, GroupRate,
Mean und Total aus dem mzR-Paket, die restlichen Parameter
sind optional. TFstring, TFstring2, digits und
var sind einfach die Parameter aus eben genannten Funktionen,
scaleF ist der Skalierungsfaktor der auf die jeweilige Spalte
angewendet werden soll, also z.B. scaleF="/1000" gibt an, dass die
Ergebnisse der entsprechenden Spalte durch 1000 dividiert werden sollen, er
ist als character zu uebergeben.
row ist eine 'list', 'named list' oder 'partly named list' die
Sublisten enthalten kann aber nicht muss. Sublisten werden eigentlich nur
uebergeben wenn einem Element aus row mehr als ein Parameter
zugewiesen werden soll. Zusaetzlich zu den moeglichen Argumenten fuer
col (ausser digits) kann hier auch noch each gesetzt
werden (auch ein Parameter aus den mzR-Schaetz-und
Fehlerrechnungsfunktionen), fun ist hier optional. Wird der Parameter
scaleF bei row gesetzt, so hat er den Vorzug vor scaleF
bei col - sollte er dort gesetzt worden sein (hier nicht vergessen,
falls in row Raten berechnet werden sollen scaleF="*1"
setzen). Dasselbe gilt weitgehend auch fuer fun, solange es Sinn
macht - hier kann es zu Faellen kommen wo kein Ergebnis ausgegeben werden
kann.
Info: returnCommands wie in MakeTable() ist hier (noch) nicht
implementiert, da diese Funktion eigentlich nur als Beispiel dienen
sollte... Kann aber bei Bedarf gemacht werden.
# NOT RUN { ### Spalten col <- list() col[[length(col)+1]] <- list(fun="GroupSize", TFstring="xerwstat!=4", scaleF="/1000") col[[length(col)+1]] <- list(fun="GroupSize", TFstring="xerwstat!=4 & balt>=15", scaleF="/1000") col[[length(col)+1]] <- list(fun="GroupSize", TFstring="xerwstat!=4 & balt>=15 & balt<=64", scaleF="/1000") col[[length(col)+1]] <- list(fun="GroupSize", TFstring="xerwstat%in%c(1,2) & balt>=15", scaleF="/1000") col[[length(col)+1]] <- list(fun="GroupSize", TFstring="xerwstat%in%c(1,2) & balt>=15 & balt<=64", scaleF="/1000") col[[length(col)+1]] <- list(fun="GroupRate", TFstring="xerwstat%in%c(1,2) & balt>=15 & balt<=64", TFstring2="xerwstat!=4 & balt>=15 & balt<=64") col[[length(col)+1]] <- list(fun="GroupSize", TFstring="xerwstat==1 & balt>=15", scaleF="/1000") col[[length(col)+1]] <- list(fun="GroupSize", TFstring="xerwstat==1 & balt>=15 & balt<=64", scaleF="/1000") col[[length(col)+1]] <- list(fun="GroupRate", TFstring="xerwstat==1 & balt>=15 & balt<=64", TFstring2="xerwstat!=4 & balt>=15 & balt<=64") col[[length(col)+1]] <- list(fun="GroupSize", TFstring="xerwstat==2 & balt>=15", scaleF="/1000") col[[length(col)+1]] <- list(fun="GroupRate", TFstring="xerwstat==2 & balt>=15", TFstring2="xerwstat%in%c(1,2) & balt>=15 & balt<=74") col[[length(col)+1]] <- list(fun="GroupSize", TFstring="xerwstat==3 & balt>=15", scaleF="/1000") col[[length(col)+1]] <- list(fun="GroupSize", TFstring="xerwstat==3 & balt>=15 & balt<=64", scaleF="/1000") ### Zeilen row <- list(NULL,each="bsex") ### Erstellen 2 Tabellen fuer FillExcelTemplate(); ### einmal mit und einmal ohne Limits # Tabelle 1: Mit Limits tab1 <- MakeTimeInstantsTable(col=col,row=row,timeInstant=c(2014,4), nbw=5, lim1=0.17,lim2=0.25) # Tabelle 2: Ohne Limits tab2 <- MakeTimeInstantsTable(col=col,row=row,timeInstant=c(2014,4),nbw=5) # }