Erstellt eine Tabelle in Matrix-Form.

MakeTable(dat, col, row = NULL, block = NULL, estimator = "est",
  error = "cv", lim1 = Inf, markLeft1 = "(", markRight1 = ")",
  markValue1 = NULL, lim2 = Inf, markLeft2 = "(", markRight2 = ")",
  markValue2 = "x", rowPriority = TRUE, returnCommands = FALSE)

Arguments

dat

MZ Daten - Output von Funktion ImportData.

col

Listenobjekt um Spalten zu definieren, siehe Details.

row

Listenobjekt oder NULL um Zeilen zu definieren, siehe Details.

block

Listenobjekt oder NULL um Block-Output definieren, siehe Details.

estimator

character um festzulegen, welcher Schaetzer in die Tabelle kommen soll. Auwahlmoeglichkeiten sind "est", "estPrev", "absChange" und "relChange".

error

character um festzulegen, welcher Genauigkeitsschaetzer zur Markierung von Zellen verwendet werden soll. Auswahlmoeglichkeiten sind "cv" (Variationskoeffizient) und "ci" (Konfidenzintervall). Sollte error="cv" gewaehlt werden, so sind die Parameter lim1 bzw. lim2 gegebenenfalls zu spezifizieren. Falls jedoch error="ci" gewaehlt wird, so sind diese Limits nicht notwendig, da in diesem Fall untersucht wird, ob der Schaetzer nicht-signifikant ist, ob also das jeweilige Konfidenzintervall den Wert 0 enthaelt. Man kann jedoch markLeft1, markRight1 und markValue1 spezifizieren, falls die nicht-signifikanten Zellen anders als durch die Defaulteinstellung markLeft1 = "(", markRight1 = ")" und markValue1 = NULL markiert werden sollen.

lim1

numerischer Wert: falls lim1>error, wird der entsprechende Wert von estimator in der Tabelle durch markLeft1, markValue1 und markRight1 ersetzt. Ist nur relevant falls codeerror="cv".

markLeft1

character: wird links zu markValue1 hinzugefuegt.

markRight1

character: wird rechts zu markValue1 hinzugefuegt.

markValue1

character oder NULL: falls NULL, wird der jeweilige Wert von estimator nicht ueberschrieben.

lim2

numerischer Wert: falls lim2>error, wird der entsprechende Wert von estimator in der Tabelle durch markLeft2, markValue2 und markRight2 ersetzt. Ist nur relevant falls codeerror="cv".

markLeft2

character: wird links zu markValue2 hinzugefuegt. Ist nur relevant falls codeerror="cv".

markRight2

character: wird rechts zu markValue2 hinzugefuegt. Ist nur relevant falls codeerror="cv".

markValue2

character oder NULL: falls NULL, wird der jeweilige Wert von estimator nicht ueberschrieben. Ist nur relevant falls codeerror="cv".

rowPriority

TRUE/FALSE ob bei der Berechnung von Raten die Zeilenlogik vor der Spaltenlogik gelten soll.

returnCommands

TRUE/FALSE ob statt einer Tabelle die Befehle ausgegeben werden sollen die zur Erstellung der Tabelle ausgefuehrt werden wuerden.

Value

Output ist eine Tabelle in Matrix-Form mit durch col, row und block definierten Spalten und Zeilen.

Details

col

Die Syntax fuer Spalten, Zeilen und Block Listen 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, Total und Median 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 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 prinzipiell optional, muss aber in vielen Faellen fuer einen sinnvollen Output angegeben werden. Will man beispielsweise einen Mittelwert berechnen, so wuerde das dementsprechende row Sublistenelement z.B. folgendermassen aussehen: list(fun="Mean",var="VarName",TFstring="!is.na(VarName)",scaleF="*1"), d.h. es wird in der entsprechenden Zeile der Tabelle jeweils der Mittelwert der Variable VarName berechnet, zusaetzlich dazu werden aber ueber den TFstring auch noch die fehlenden Werte in der Variable VarName ausgeschlossen. 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). Falls GroupRate, Mean, Total oder Median sowohl in row als auch col gesetzt wurden wird fuer die jeweilige Zelle im Output kein Ergebnis ausgegeben.

block

block ist eine Liste, die gewisse Einschraenkungen (oder NULL, falls keine Einschraenkung gemacht werden soll) enthaelt, welche jeweils fuer alle Zeilen ausgefuehrt werden sollen. Diese Einschraenkungen werden pro block-Element fuer alle row-Elemente ausgefuehrt. D.h. es kann z.B. eine Output-Tabelle erstellt werden die im ersten 'Block' die Ergebnisse fuer Schnecken und im zweiten Block die Ergebnisse fuer Nicht-Schnecken enthaelt.

Kleine Bemerkung am Rande: Fuer die meisten Publikationen ist es sinnvoll, keine digits bei col bei MakeTable() zu setzen da oft die vorgegebenen Excel-Formate das Runden uebernehmen.

See also

Examples

# NOT RUN {
dat <- ImportData(year=2014,quarter=4,comp_diff_lag = 1)
### Spalten definieren
col <- list()
col[[length(col)+1]] <- list(fun="GroupSize",TFstring="balt>=15&balt<=74",
                             digits=3, scaleF="/1000")
col[[length(col)+1]] <- list(fun="GroupSize",TFstring="balt>=15&balt<=25",
                            digits=3, scaleF="/1000")
col[[length(col)+1]] <- list(fun="GroupRate",TFstring="balt>=15&balt<=25",
                             TFstring2="balt>=15&balt<=74", digits=3)
col[[length(col)+1]] <- list(fun="GroupRate",
                             TFstring="xerwstat==1&balt>=15&balt<=74",
                             TFstring2="xerwstat%in%c(1,2)&balt>=15&balt<=74", digits=3)
col[[length(col)+1]] <- list(fun="Total",
                             TFstring="xerwstat==1&balt>=15&balt<=74",var="dtstd",
                             digits=3, scaleF="/24/365")
### Zeilen definieren
row <- list(
  NULL,
  each="xnuts2",
  list(TFstring="bpras!=1 & balt>=15 & balt<=64", scaleF="*1"),
  each="rbpkin+xbstaat",
  TFstring="balt>=15&balt<=25"
)

### Bloecke definieren
block <- list(NULL, "bsex==1", "bsex==2")

### Erstellen 3 Tabellen fuer FillExcelTemplate(), jeweils mit verschiedenen Regeln 
##  zur Kennzeichnung von bestimmten Werten
##  Achtung: kann durchaus laenger dauern!

### 1. Tabelle mit Limits (bezogen auf Variationskoeffizient)
tab1 <- MakeTable(dat, col=col, row=row, block=block, error="cv",
                 lim1=0.17, lim2=0.25)
### 2. Tabelle ohne Limits und Default-Error-Einstellung liefert unmarkierte Zellen-Werte
tab2 <- MakeTable(dat, col=col, row=row, block=block)

### 3. Tabelle der relativen Veraenderungen vom 3. Quartal 2014 aufs 4. Quartal 2014 
##  Nicht-signifikante Schaetzwerte (Konfidenzintervall enthaelt den Wert 0) 
##  werden durch * markiert.
##  Achtung: bei einigen col-Listenelementen wurde scaleF spezifiziert. 
##  Das macht hier fuer Veraenderungen keinen Sinn, wird aber der Einfachheit halber 
##  fuer dieses Beispiel so belassen.
tab3 <- MakeTable(dat, col=col, row=row, block=block, estimator="relChange", error="ci",
                  markLeft1="",markRight1="*",markValue1=NULL)


### Commands ansehen fuer tab1
tab1_commands <- MakeTable(dat,col=col,row=row, block=block,error="cv",
  lim1=0.17,lim2=0.25,returnCommands=TRUE)
## -> Bsp: block 1, col 3, row 4: 
tab1_commands[[1]][[3]][[4]]

# }