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)
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 |
error | character um festzulegen, welcher Genauigkeitsschaetzer zur Markierung von Zellen verwendet werden soll.
Auswahlmoeglichkeiten sind |
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 |
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. |
Output ist eine Tabelle in Matrix-Form mit durch col
,
row
und block
definierten Spalten und Zeilen.
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.
# 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]] # }