Philip Leifeld
11
handing over lists of nested lists of vectors. ‘texreg’ objects are created by the extract()
methods and handed over to the texreg function (see Section4.1).
4.3. Preprocessing the ‘texreg’ objects
Once all ‘texreg’ objects have been returned to the texreg(), htmlreg() or screenreg()
function, they have to be preprocessed. This entails two steps: rst, coecients, stan-
dard errors or p values must be replaced by user-dened numeric vectors (for example if
robust standard errors have been manually computed). The arguments override.coef,
override.se, override.pvalues, override.ci.low, and override.ci.up serve to replace
thecoecients, standard errors, pvalues,andcondence intervals,respectively. Second,L
A
T
E
X
-specic markup codes are replaced by their HTML or plain-text equivalents if htmlreg() or
screenreg() are called instead of texreg().
4.4. Matching the model terms
After preprocessing the ‘texreg’ objects, their contents are arranged in three separate matri-
ces: the coecient block matrix consists of three columns for each model(coecient, standard
error, and p value); the GOF block matrix consists of one column for each model and one row
for each GOF statistic and contains the GOF values; and the decimal matrix has the same
dimensions as the GOF block matrix and indicates for each GOF value whether it should have
decimal places (e.g., R
2
,AIC, etc.) or whether it is an integer (e.g., number of observations,
number of groups, etc.). All of these matrices are created by matching the names of the
coecients or GOF names of the dierent models to avoid redundancy. The three matrices
are kept separate during the postprocessing stage and are then combined in a single table.
4.5. Postprocessing and rearranging of the matrices
During the postprocessing stage, the coecient and GOF names are replaced by user-dened
names (using the custom.coef.names and custom.gof.names arguments), coecient rows
are removed by applying regular expressions to the row names (using the omit.coef argu-
ment), and coecients/standard errors and GOF statistics are reordered according to the
user’s wishes (following the reorder.coef and reorder.gof arguments).
Renaming the coecients or GOF names may lead to duplicate entries. These duplicate rows
must be con ated. For example, there may be one row with the name \duration" (with the
duration variable only existing in the rst model) and another row with the name \time"
(with the time variable only existing in the second model). After renaming both rows to
either of the two names, the two rows must be con ated such that there is only one row left
with the duration coecient in the rst cell and the time coecient in the second cell.
Rearranging the matrix also entails checking for rows with duplicate names which are in fact
not complementary and rearranging them only by presenting the fullest rows rst. Further-
more, there may be more than two duplicate rows with the same name and other complex
congurations which are handled by texreg. Finally, rearranged rows are reordered to ensure
that models appear as compact as possible in the table.
How to rearrange pdf pages online - re-order PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Customizing Page Order of PDF Document in C# Project
move pages in pdf file; pdf change page order
How to rearrange pdf pages online - VB.NET PDF Page Move Library: re-order PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sort PDF Document Pages Using VB.NET Demo Code
change page order in pdf file; rearrange pages in pdf document
12
texreg: Conversion of R Model Output to L
A
T
E
Xand HTML
4.6. Aggregating the table and con ating columns
Before the data are aggregated in the nal table, all coecients, standard errors and GOF
values must be formatted according to the specications of the user: they have to be rounded
(following the digits argument), leading zeroes must be removed if desired by the user (as
set by the leading.zero argument), and the numeric values are converted into character
strings.
The p value column of the coecient block matrix is then used to add signicance stars or
bold formatting depending on the stars, symbol, star.symbol, and bold arguments. In the
nal table, the standard error and p value columns are removed, and the standard errors are
either inserted between the coecient and the stars or in separate rows below the coecients
(depending on the single.row argument).
4.7. Typesetting the nal table
The nal table is eventually translated into LAT
E
Xor HTML code and either printed to the R
console or diverted to a le (depending on the file argument). All three functions, texreg(),
htmlreg() and screenreg(), have their own custom arguments for the layout of the table.
These specic options are listed and explained at the bottom of Table1.
5. Examples
This section gives some practical examples. All data and model formulae were taken from
the help les of the respective models and their packages for the sake of replicability.
5.1. The screenreg() function
First, consider a simple linear model as created by the lm() function:
R> ctl <- c(4.17, 5.58, 5.18, 6.11, 4.50, 4.61, 5.17, 4.53, 5.33, 5.14)
R> trt <- c(4.81, 4.17, 4.41, 3.59, 5.87, 3.83, 6.03, 4.89, 4.32, 4.69)
R> group <- gl(2, 10, 20, labels = c("Ctl", "Trt"))
R> weight <- c(ctl, trt)
R> m1 <- lm(weight ~ group)
R> m2 <- lm(weight ~ group - 1)
The coecients, standard errors, p values etc. of model 2 can be displayed as follows:
R> summary(m2)
Call:
lm(formula = weight ~ group - 1)
Residuals:
Min
1Q Median
3Q
Max
-1.0710 -0.4938 0.0685 0.2462 1.3690
C# TIFF: How to Reorder, Rearrange & Sort TIFF Pages Using C# Code
C# TIFF - Sort TIFF File Pages Order in C#.NET. Reorder, Rearrange and Sort TIFF Document Pages in C#.NET Application. C# TIFF Page Sorting Overview.
reverse page order pdf; how to reorder pages in pdf
Online Merge PDF files. Best free online merge PDF tool.
Then press the button below and download your PDF. By dragging your pages in the editor area you can rearrange them or delete single pages.
reorder pdf pages in preview; how to move pages in pdf acrobat
Philip Leifeld
13
Coefficients:
Estimate Std. Error t value Pr(>|t|)
groupCtl
5.0320
0.2202
22.85 9.55e-15 ***
groupTrt
4.6610
0.2202
21.16 3.62e-14 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.6964 on 18 degrees of freedom
Multiple R-squared: 0.9818,
Adjusted R-squared: 0.9798
F-statistic: 485.1 on 2 and 18 DF, p-value: < 2.2e-16
Next, load the texreg package. The output of the two models can be converted into a plain
text table using the following command. The text output is shown below the R code.
R> library("texreg")
R> screenreg(list(m1, m2))
=================================
Model 1
Model 2
---------------------------------
(Intercept)
5.03 ***
(0.22)
groupTrt
-0.37
4.66 ***
(0.31)
(0.22)
groupCtl
5.03 ***
(0.22)
---------------------------------
R^2
0.07
0.98
Adj. R^2
0.02
0.98
Num. obs.
20
20
RMSE
0.70
0.70
=================================
*** p < 0.001, ** p < 0.01, * p < 0.05
An arbitrary number of models can be handed over to the texreg(), htmlreg() or
screenreg() function by enclosing them in a list. If only one model is converted, the
list wrapper is not needed.
5.2. texreg(), table environments, and layout packages
The same table can be typeset in LAT
E
Xby exchanging screenreg() for texreg(). In the
following example, several additional arguments are demonstrated. The LAT
E
Xoutput code
is shown below the R code that generates the table. The resulting table is shown in Table3.
R> texreg(list(m1, m2), dcolumn = TRUE, booktabs = TRUE,
+
use.packages = FALSE, label = "tab:3", caption = "Two linear models.",
+
float.pos = "hb")
The caption, label, and  oat position of the table are set explicitly. The dcolumn package is
used to align coecients at their decimal separators, and the booktabs package is employed
VB.NET TIFF: Modify TIFF File by Adding, Deleting & Sort TIFF
you want to change or rearrange current TIFF &ltsummary> ''' Sort TIFF document pages in designed powerful & profession imaging controls, PDF document, image
rearrange pdf pages online; how to rearrange pdf pages online
VB.NET PDF File & Page Process Library SDK for vb.net, ASP.NET
a PDF document which is out of order, you need to rearrange the PDF you with examples for adding an (empty) page to a PDF and adding empty pages to a
how to rearrange pages in a pdf reader; reorder pages pdf
14
texreg: Conversion of R Model Output to L
A
T
E
Xand HTML
to create professional horizontal rules. These arguments can be omitted if the two packages
are not available (in this case, top, mid and bottom rules are replaced by conventional hor-
izontal rules, and numeric values are horizontally aligned at the center of the column). The
\usepackage{} declarations for the two packages are suppressed because the code has to be
processed by Sweave().
In order to omit the \begin{table} and \end{table} as well as the \begin{center} and
\end{center} code, the table and center arguments can be used. If table = FALSE and
center = FALSE are set, only the tabular environment is printed, not the table and center
environments. In eect, the resulting table would be printed in-line in the text. Another
reason for skipping the table environment could be to netune the environment manually.
Alternatively, the argument sideways = TRUE can be used to rotate the table by 90 degrees
using the sidewaystable environment in the rotating package (RahtzandFairbairns2008)
instead of the default table environment.
5.3. Custom names, omission of terms, and customization of coecients
Another example demonstrates how the LAT
E
Xcode can be saved in an object The result is
shown in Table4.
R> mytable <- texreg(list(m1, m2), label = "tab:4",
+
caption = "Bolded coefficients, custom notes, three digits.",
+
float.pos = "h", bold = 0.05, stars = 0, custom.note =
+
"Coefficients with $p < 0.05$ in \\textbf{bold}.",
+
digits = 3, leading.zero = FALSE, omit.coef = "Inter")
The table can be printed to the R console later by calling the name of the object (in this case
mytable).
The example presented above introduced several additional arguments: bold = 0.05 formats
all coecients with p values < 0:05 in bold; stars = 0 means that only coecients with
p values < 0 are decorated with a star, which eectively suppresses all signicance stars
in the table because negative p values are not possible. Note that bold formatting cannot
be used in combination with the dcolumn argument, so decimal mark alignment is switched
o in Table 4. The booktabs argument was also left out to show the dierence between
conventional horizontal lines in Table4 and booktabs rules in Table3. The custom.note =
"Coefficients with $p < 0.05$ in bold." argument changes the signicance note below
the table. The digits = 3 argument sets three decimal places, leading.zero = FALSE
suppresses leading zeroes before the decimal separator, and omit.coef = "Inter" causes
all rows containing the regular expression\Inter" to be skipped from the output (here: the
\(Intercept)" term). Note that more complex regular expressions are possible; for example,
omit.coef = "(Trt)|(Ctl)" would remove all rows matching either \Trt"or \Ctl".
5.4. Multiple model types, single.row, and custom names
Another example shows how texreg can deal with multiple kinds of models in the same table.
The following code shows how ordinary least squares (OLS) and generalized least squares
(GLS) models are matched in a single output table. The output is shown in Table5.
C# PowerPoint - How to Process PowerPoint
the simplest procedures, for instance, using online clear C# out useless PowerPoint document pages simply with solution to sort and rearrange PowerPoint slides
move pdf pages; reverse pdf page order online
VB.NET Word: How to Process MS Word in VB.NET Library in .NET
well programmed Word pages sorter to rearrange Word pages in extracting single or multiple Word pages at one & profession imaging controls, PDF document, image
how to move pages around in a pdf document; change page order in pdf online
Philip Leifeld
15
R> library("nlme")
R> m3 <- gls(follicles ~ sin(2 * pi * Time) + cos(2 * pi * Time), Ovary,
+
correlation = corAR1(form = ~ 1 | Mare))
R> texreg(
+
list(m1, m3),
+
custom.coef.names = c(
+
"Intercept",
+
"Control",
+
"$\\sin(2 \\cdot \\pi \\cdot \\mbox{time})$",
+
"$\\cos(2 \\cdot \\pi \\cdot \\mbox{time})$"
+
),
+
custom.model.names = c("OLS model", "GLS model"),
+
reorder.coef = c(1, 3, 4, 2),
+
caption = "Multiple model types, custom names, and single row.",
+
label = "tab:5",
+
stars = c(0.01, 0.001),
+
dcolumn = TRUE,
+
booktabs = TRUE,
+
use.packages = FALSE,
+
single.row = TRUE,
+
include.adjrs = FALSE,
+
include.bic = FALSE
+ )
Several interesting things can be noted. First, the custom.coef.names argument was used to
relabel the coecient rows.
If there were repetitions of coecient names in the
custom.coef.names vector, texreg would try to con ate rows with identical names. In the
case shown here, the two models are only matched on the intercept and the number of obser-
vations because all other rows have unique names.
Second, the custom names include L
A
T
E
Xcode. Within the code, in-line math code is allowed.
L
A
T
E
Xcommands have to be marked by an additional backslash as an escape character, e.g.,
\\pi instead of \pi. Text within math blocks can be included in \mbox{} commands.
Third, custom names were also provided for the models. Using the custom.model.names
argument, the default \Model 1", \Model 2" etc. are replaced by \OLS model" and \GLS
model" in this case.
Fourth, the order of the coecients was changed using the reorder.coef argument. The
\Control" term was moved to the last position in the table.
Fifth, two signicance levels (and, accordingly, a maximum of two stars) are used in the table.
The stars argument takes at most four values, and when four values are specied, the lowest
signicance level (usually 0:05  p < 0:1) is denoted by the character specied in the symbol
argument (by default a centered dot).
Sixth, the single.row argument causes the table to consume less vertical and more horizontal
space because the standard errors are inserted right after the coecients.
And seventh, the include.adjrs and include.bic arguments suppress the inclusion of the
adjustedR
2
andBIC GOF statistics. These aremodel-specic arguments, whichare denedin
the extract() methods for ‘lm’ and ‘gls’. More information about model-specic arguments
Process Images in Web Image Viewer | Online Tutorials
used document types are supported, including PDF, multi-page easy to process image and file pages with the deleting a thumbnail, and you can rearrange the file
how to move pages in a pdf file; rearrange pdf pages in preview
VB.NET PowerPoint: Sort and Reorder PowerPoint Slides by Using VB.
page will teach you to rearrange and readjust amount of robust PPT slides/pages editing methods and powerful & profession imaging controls, PDF document, image
how to rearrange pages in pdf document; reorder pdf pages reader
16
texreg: Conversion of R Model Output to L
A
T
E
Xand HTML
can be found on the help page of the generic extract() function.
5.5. An example with robust standard errors
Acommon task in econometrics is to report robust|i.e., (Eicker-)Huber-White-corrected,
or heteroskedasticity-consistent|standard errors using the sandwich (Zeileis2004,2006) and
lmtest (Zeileis and Hothorn 2002) packages. The following code shows how this can be
accomplished in combination with the texreg package. The resulting table is not reported
here.
R> library("sandwich")
R> library("lmtest")
R> hc <- vcovHC(m2)
R> ct <- coeftest(m2, vcov = hc)
R> se <- ct[, 2]
R> pval <- ct[, 4]
R> texreg(m2, override.se = se, override.pvalues = pval)
The standard errors and p values are rst extracted from the hc matrix and then handed over
to the texreg() function using the override.se and override.pvalues arguments.
5.6. htmlreg(), Microsoft Word, knitr, and Markdown
The following examples show how the htmlreg() function can be used. The output code for
these examples is not reported here.
The output of any texreg(), htmlreg() or screenreg() call can be written directly to a le
by adding the file argument. This is especially handy because HTML les can be read by
Microsoft Word if a \.doc" le extension is added.
If the table is exported to a le, it is advisable to include the full header information of
the HTML le to make sure that Microsoft Word or other programs can parse the le. An
example:
R> htmlreg(list(m1, m2, m3), file = "mytable.doc", inline.css = FALSE,
+
doctype = TRUE, html.tag = TRUE, head.tag = TRUE, body.tag = TRUE)
The doctype argument adds the document type declaration to the rst line of the HTML
document. The inline.css = FALSE argument causes the function to write cascading style
sheets (the table formatting code) into the <head> tag rather than into the table code. The
head.tag argument actually adds sucha <head> tagto the document. Similarly,the body.tag
argument wraps the table in a <body> tag, and the html.tag argument encloses both|the
<head> and the <body> tag|in an <html> tag. In other words, these arguments create a
whole HTML document rather than merely the table code. The resulting le can be read by
Microsoft Word because the HTML le has a\.doc"extension.
The htmlreg() function also works wellwith the knitr package for dynamic report generation
(Xie2013c). The default arguments are compatible with knitr and HTML. In addition to
HTML, knitr is also compatible with Markdown, a simplied markup language. texreg can
work with Markdown as well, but an additionalargument should be provided to make it work:
Philip Leifeld
17
R> htmlreg(list(m1, m2, m3), star.symbol = "\\*", center = TRUE,
+
doctype = FALSE)
The star.symbol = "\\*" argument makes sure that Markdown does not interpret the sig-
nicance stars as special Markdown syntax. The additional (and optional) center = TRUE
argument centers the table horizontally on the page.
5.7. Condence intervals instead of standard errors
Most model types implemented in texreg report standard errors and p values. However, some
model types report condence intervals by default. The xergm package (Leifeld,Cranmer,
and Desmarais 2014)andthelme4package(Bates et al. 2013)aretwoexamples.Ifcondence
intervals are preferred to standard errors but they are not available by default, the ci.force
argument allows conversion of standard errors to condence intervals. The ci.force.level
argument determines at which condence level the interval should be computed.
Astar is added to estimates where the condence interval does not contain the value given by
ci.test (to remove signicance stars, ci.test = NULL can be set). When the bold argument
is used in conjunction with condence intervals, bold values greater than 0 cause texreg to
print estimates in bold where the ci.test value is outside the condence interval, regardless
of the actual value of the bold argument (see Table6):
R> texreg(list(m1, m1, m2), ci.force = c(FALSE, TRUE, TRUE), ci.test = 0,
+
ci.force.level = 0.95, bold = 0.05, float.pos = "tb",
+
caption = "Enforcing confidence intervals.",
+
booktabs = TRUE, use.packages = FALSE, single.row = TRUE)
5.8. Coecient plots
Finally, it is possible to display the results of statistical models usinga coecient plot (a forest
plot applied to the estimates and condence intervals or standard errors of a regression model;
for another implementation, seeLander2013). Using the plotreg function, one or multiple
statistical modelobjects can be plotted. Most ofthe arguments of the screenreg,texreg, and
htmlreg functions are also supported by the plotreg function. Where condence intervals are
not natively available, the plotreg function converts standard errors into condence intervals.
Alternatively, the use.se argument can be used to plot error bars with one or two standard
errors from the point estimate. The diagram produced by the following code is shown in
Figure2:
R> plotreg(m1, custom.coef.names = c("Intercept", "Group Trt"))
6. Writing extensions for new models
The previous examples have demonstrated how the texreg package can be used to convert
statistical model output into plain-text, LAT
E
X, HTML, and Markdown tables. Yet, this only
works with model types known to texreg. Accordingly, this section shows how methods for
new model types can be devised and registered.
18
texreg: Conversion of R Model Output to L
A
T
E
Xand HTML
Model 1
Bars denote CIs.
Intercept
Group Trt
−1
0
1
2
3
4
5
l
l
Figure 2: Result of the plotreg function. Signicant estimates are colored in red.
6.1. Simple extensions
Acustom extract function can be easily implemented. For any model type, there exists a
function which extracts the relevant information from a model. For example, the extract()
methodfor ‘lm’ objects provides coecients andGOF statistics for ‘lm’objects, theextract()
method for ‘ergm’ objects provides this information for ‘ergm’ objects, etc.
To get an overview of the model type one is interested in, it is recommended to t a model and
examinethe resultingobject usingthe str(model) command, thesummary(model) command,
the summary(model)$coef command, and related approaches.
Any new extract function should retrieve the data shown in Table7 from a statistical model.
Note that pvalues and gof.decimal are optional and can be omitted. Either the se slot or
the ci.low and ci.up slots must contain values.
Once these data have been located and extracted, a ‘texreg’ object can be created and
returned to the texreg() function. The following code provides a simple example for ‘lm’
objects:
R> extract.lm <- function(model) {
+
s <- summary(model)
+
names <- rownames(s$coef)
+
co <- s$coef[, 1]
+
se <- s$coef[, 2]
+
pval <- s$coef[, 4]
+
+
rs <- s$r.squared
+
adj <- s$adj.r.squared
+
n <- nobs(model)
+
+
gof <- c(rs, adj, n)
Philip Leifeld
19
+
gof.names <- c("R$^2$", "Adj.\\ R$^2$", "Num.\\ obs.")
+
+
tr <- createTexreg(
+
coef.names = names,
+
coef = co,
+
se = se,
+
pvalues = pval,
+
gof.names = gof.names,
+
gof = gof
+
)
+
return(tr)
+ }
First, the names of the model terms, the coecient values, the standard errors, and the
pvalues are extracted from the modelor its summary (they can be computed if not available).
Second, various summary statistics and GOF measures are extracted from the model object
(in this case: R
2
,Adj. R
2
and Num. obs.) and saved in a numeric vector.
Third, the names of these statistics should be dened in a character vector. All vectors so
far should have the same length.
Fourth, a new ‘texreg’ object should be created, with the information extracted before in-
cluded as arguments.
Fifth, the ‘texreg’ object must be returned. This is necessary for the texreg() function to
continue processing the model.
After writing a custom function, the function has to be registered as a method for the generic
extract() function. In the above example, this can be achieved with the following code:
R> setMethod("extract", signature = className("lm", "stats"),
+
definition = extract.lm)
Assume, for instance, that an extension for ‘clogit’ objects called extract.clogit() is
written. The clogit() function (and the corresponding class denition) can be found in
the survival package (TherneauandGrambsch2000;Therneau2012). Then the code above
should be changed as follows:
R> setMethod("extract", signature = className("clogit", "survival"),
+
definition = extract.clogit)
After executingthe denition of the functionandthe adjusted setMethod() command, texreg
can be used with ‘clogit’ models.
6.2. A complete example
The following code shows the complete extract.lm() function as included in the texreg
package.
R> extract.lm <- function(model, include.rsquared = TRUE,
+
include.adjrs = TRUE, include.nobs = TRUE, ...) {
20
texreg: Conversion of R Model Output to L
A
T
E
Xand HTML
+
+
s <- summary(model, ...)
+
names <- rownames(s$coef)
+
co <- s$coef[, 1]
+
se <- s$coef[, 2]
+
pval <- s$coef[, 4]
+
+
gof <- numeric()
+
gof.names <- character()
+
gof.decimal <- logical()
+
if (include.rsquared == TRUE) {
+
rs <- s$r.squared
+
gof <- c(gof, rs)
+
gof.names <- c(gof.names, "R$^2$")
+
gof.decimal <- c(gof.decimal, TRUE)
+
}
+
if (include.adjrs == TRUE) {
+
adj <- s$adj.r.squared
+
gof <- c(gof, adj)
+
gof.names <- c(gof.names, "Adj.\\ R$^2$")
+
gof.decimal <- c(gof.decimal, TRUE)
+
}
+
if (include.nobs == TRUE) {
+
n <- nobs(model)
+
gof <- c(gof, n)
+
gof.names <- c(gof.names, "Num.\\ obs.")
+
gof.decimal <- c(gof.decimal, FALSE)
+
}
+
+
tr <- createTexreg(
+
coef.names = names,
+
coef = co,
+
se = se,
+
pvalues = pval,
+
gof.names = gof.names,
+
gof = gof,
+
gof.decimal = gof.decimal
+
)
+
return(tr)
+ }
R> setMethod("extract", signature = className("lm", "stats"),
+
definition = extract.lm)
In addition to the simple example code shown above, this function has several arguments,
which can be used to include or exclude various GOF or summary statistics. Additional argu-
ments can also be used in other contexts. For example, the user can decide whether random
eect variances should be included in texreg tables of ‘mer’ objects (from the lme4 package,
Documents you may be interested
Documents you may be interested