R/MakeQT.R
MakeQT.Rd
Funktion erstellt Tabellen in einem Format das im Mikrozensus-Quartalsbericht ueblich ist, also mit Ergebnissen fuer verschiedene Zeitpunkte. Die zugehoerigen MZ-Daten muessen dabei vorher mit der Funktion ImportDataListQT eingelesen werden.
MakeQT(datalist, col, row = NULL, timeInstant, lim1 = Inf, markLeft1 = "(", markRight1 = ")", markValue1 = NULL, lim2 = Inf, markLeft2 = "(", markRight2 = ")", markValue2 = "x")
datalist | Output-Objekt der Funktion ImportDataListQT() |
---|---|
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. |
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.
Die zur Erstellung der Quartalsberichts-Tabellen benoetigten Daten muessen zuvor mit der Funktion ImportDataListQT eingelesen werden.
col
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
row
entspricht in dieser Funktion im Prinzip dem
block
-Parameter von MakeTable.
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.
# NOT RUN { ### Daten einlesen datalist <- ImportDataListQT(timeInstant=c(2014,4),whichVar=c("rbpkin")) ### Tabelle A1 im Quartalsbericht: ### 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 (enthaelt gegebenenfalls characters) # Tabelle 1: Mit Limits tab1 <- MakeQT(datalist,col=col,row=row,timeInstant=c(2014,4), lim1=0.17,lim2=0.25) # Tabelle 2: Ohne Limits (enthaelt nur numerische Werte) tab2 <- MakeQT(datalist,col=col,row=row,timeInstant=c(2014,4)) # }