]> git.donarmstrong.com Git - xtable.git/blob - pkg/vignettes/OtherPackagesGallery.Rnw
Minor changes to vignettes. Also added documentation for flat tables.
[xtable.git] / pkg / vignettes / OtherPackagesGallery.Rnw
1 %\VignetteIndexEntry{xtable List of Tables Gallery}\r
2 %\VignetteDepends{xtable, spdep, splm, sphet}\r
3 %\VignetteKeywords{LaTeX, HTML, table}\r
4 %\VignettePackage{xtable}\r
5 % !Rnw weave = knitr\r
6 % \VignetteEngine{knitr::knitr}\r
7 %**************************************************************************\r
8 \documentclass{article}\r
9 \usepackage[a4paper, height=24cm]{geometry} % geometry first\r
10 \usepackage{array}\r
11 \usepackage{booktabs}\r
12 \usepackage{longtable}\r
13 \usepackage{parskip}\r
14 \usepackage{rotating}\r
15 \usepackage{tabularx}\r
16 \usepackage{titlesec}\r
17 \usepackage{hyperref} % hyperref last\r
18 \titleformat\subsubsection{\bfseries\itshape}{}{0pt}{}\r
19 \newcommand\p{\vspace{2ex}}\r
20 \newcommand\code[1]{\texttt{#1}}\r
21 \newcommand\pkg[1]{\textbf{#1}}\r
22 \setcounter{tocdepth}{2}\r
23 \begin{document}\r
24 \r
25 \title{\bfseries\Large The Other Packages Gallery}\r
26 \author{\bfseries David J. Scott}\r
27 \maketitle\r
28 \r
29 \tableofcontents\r
30 \r
31 \newpage\r
32 \r
33 \section{Introduction}\r
34 This document represents a test of the functions in \pkg{xtable} which\r
35 deal with other packages.\r
36 \r
37 <<set, include=FALSE>>=\r
38 library(knitr)\r
39 opts_chunk$set(fig.path = 'Figures/other', debug = TRUE, echo = TRUE)\r
40 opts_chunk$set(out.width = '0.9\\textwidth')\r
41 @\r
42 \r
43 The first step is to load the package and set some options for this document.\r
44 <<package, results='asis'>>=\r
45 library(xtable)\r
46 options(xtable.floating = FALSE)\r
47 options(xtable.timestamp = "")\r
48 options(width = 60)\r
49 set.seed(1234)\r
50 @\r
51 \r
52 \section{The packages \pkg{spdep}, \pkg{splm}, and \pkg{sphet}}\r
53 \r
54 Code for supporting these packages and most of the examples used in\r
55 this section was originally provided by Martin Gubri\r
56 (\url{martin.gubri@framasoft.org}).\r
57 \r
58 \subsection{The package \pkg{spdep}}\r
59 \label{sec:package-pkgspdep}\r
60 \r
61 First load the package and create some objects.\r
62 <<dataspdep>>=\r
63 library(spdep)\r
64 data("oldcol", package = "spdep")\r
65 COL.lag.eig <- lagsarlm(CRIME ~ INC + HOVAL, data = COL.OLD[],\r
66                         nb2listw(COL.nb))\r
67 class(COL.lag.eig)\r
68 COL.errW.GM <- GMerrorsar(CRIME ~ INC + HOVAL, data = COL.OLD,\r
69                           nb2listw(COL.nb, style = "W"),\r
70                           returnHcov = TRUE)\r
71 class(COL.errW.GM)\r
72 COL.lag.stsls <- stsls(CRIME ~ INC + HOVAL, data = COL.OLD,\r
73                        nb2listw(COL.nb))\r
74 class(COL.lag.stsls)\r
75 \r
76 p1 <- predict(COL.lag.eig, newdata = COL.OLD[45:49,],\r
77               listw = nb2listw(COL.nb))\r
78 class(p1)\r
79 p2 <- predict(COL.lag.eig, newdata = COL.OLD[45:49,],\r
80               pred.type = "trend", type = "trend")\r
81 #type option for retrocompatibility with spdep 0.5-92\r
82 class(p2)\r
83 \r
84 imp.exact <- impacts(COL.lag.eig, listw = nb2listw(COL.nb))\r
85 class(imp.exact)\r
86 imp.sim <- impacts(COL.lag.eig, listw = nb2listw(COL.nb), R = 200)\r
87 class(imp.sim)\r
88 @ %def\r
89 \r
90 \r
91 \subsubsection{\code{sarlm} objects}\r
92 \label{sec:codesarlm-objects}\r
93 \r
94 There is an \code{xtable} method for objects of this type.\r
95 <<xtablesarlm, results = 'asis'>>=\r
96 xtable(COL.lag.eig)\r
97 @ %def\r
98 \r
99 The method for \code{xtable} actually uses the summary of the object,\r
100 and an identical result is obtained when using the summary of the\r
101 object, even if the summary contains more additional information.\r
102 \r
103 <<xtablesarlmsumm, results = 'asis'>>=\r
104 xtable(summary(COL.lag.eig, correlation = TRUE))\r
105 @ %def\r
106 \r
107 This same pattern applies to the other objects from this group of packages.\r
108 \r
109 Note that additional prettying of the resulting table is possible, as\r
110 for any table produced using \code{xtable}. For example using the\r
111 \pkg{booktabs} package we get:\r
112 \r
113 <<xtablesarlmbooktabs, results = 'asis'>>=\r
114 print(xtable(COL.lag.eig), booktabs = TRUE)\r
115 @ %def\r
116 \r
117 \subsubsection{\code{gmsar} objects}\r
118 \label{sec:codegmsar-objects}\r
119 \r
120 \r
121 <<xtablegmsar, results = 'asis'>>=\r
122 xtable(COL.errW.GM)\r
123 @ %def\r
124 \r
125 \subsubsection{\code{stsls} objects}\r
126 \label{sec:codestsls-objects}\r
127 \r
128 \r
129 <<xtablestsls, results = 'asis'>>=\r
130 xtable(COL.lag.stsls)\r
131 @ %def\r
132 \r
133 \subsubsection{\code{sarlm.pred} objects}\r
134 \label{sec:codesarlmpred-objects}\r
135 \r
136 \code{xtable} has a method for predictions of \code{sarlm} models.\r
137 \r
138 <<xtablesarlmpred, results = 'asis'>>=\r
139 xtable(p1)\r
140 @ %def\r
141 \r
142 This method transforms the \code{sarlm.pred} objects into data frames, allowing any number of attributes vectors which may vary according to predictor types.\r
143 \r
144 <<xtablesarlmpred2, results = 'asis'>>=\r
145 xtable(p2)\r
146 @ %def\r
147 \r
148 \subsubsection{\code{lagImpact} objects}\r
149 \label{sec:codelagimpact-objects}\r
150 \r
151 The \code{xtable} method returns the values of direct, indirect and total impacts for all the variables in the model. The class \code{lagImpact} have two different sets of attributes according to if simulations are used. But the \code{xtable} method always returns the three components of the non-simulation case.\r
152 \r
153 <<xtablelagimpactexact, results = 'asis'>>=\r
154 xtable(imp.exact)\r
155 @ %def\r
156 \r
157 \p\r
158 <<xtablelagimpactmcmc, results = 'asis'>>=\r
159 xtable(imp.sim)\r
160 @ %def\r
161 \r
162 \r
163 \subsubsection{\code{spautolm} objects}\r
164 \label{sec:codespautolm-objects}\r
165 \r
166 The need for an \code{xtable} method for \code{spautolm} was expressed\r
167 by Guido Schulz (\url{schulzgu@student.hu-berlin.de}), who also\r
168 provided an example of an object of this type. The required code was\r
169 implemented by David Scott (\url{d.scott@auckland.ac.nz}).\r
170 \r
171 First create an object of the required type.\r
172 \r
173 <<minimalexample, results = 'hide'>>=\r
174 library(spdep)\r
175 example(NY_data)\r
176 spautolmOBJECT <- spautolm(Z ~ PEXPOSURE + PCTAGE65P,data = nydata,\r
177                            listw = listw_NY, family = "SAR",\r
178                            method = "eigen", verbose = TRUE)\r
179 summary(spautolmOBJECT, Nagelkerke = TRUE)\r
180 @ %def\r
181 \r
182 \p\r
183 <<spautolmclass>>=\r
184 class(spautolmOBJECT)\r
185 @ %def\r
186 \r
187 \r
188 <<xtablespautolm, results = 'asis'>>=\r
189 xtable(spautolmOBJECT,\r
190        display = c("s",rep("f", 3), "e"), digits = 4)\r
191 @ %def\r
192 \r
193 \r
194 \r
195 \subsection{The package \pkg{splm}}\r
196 \label{sec:package-pkgsplm}\r
197 \r
198 First load the package and create some objects.\r
199 <<datasplm>>=\r
200 library(splm)\r
201 data("Produc", package = "plm")\r
202 data("usaww",  package = "splm")\r
203 fm <- log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp\r
204 respatlag <- spml(fm, data = Produc, listw = mat2listw(usaww),\r
205                    model="random", spatial.error="none", lag=TRUE)\r
206 class(respatlag)\r
207 GM <- spgm(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp, data = Produc,\r
208            listw = usaww, moments = "fullweights", spatial.error = TRUE)\r
209 class(GM)\r
210 \r
211 imp.spml <- impacts(respatlag, listw = mat2listw(usaww, style = "W"), time = 17)\r
212 class(imp.spml)\r
213 @ %def\r
214 \r
215 \r
216 \subsubsection{\code{splm} objects}\r
217 \label{sec:codesplm-objects}\r
218 \r
219 <<xtablesplm, results = 'asis'>>=\r
220 xtable(respatlag)\r
221 @ %def\r
222 \r
223 \r
224 \p\r
225 <<xtablesplm1, results = 'asis'>>=\r
226 xtable(GM)\r
227 @ %def\r
228 \r
229 The \code{xtable} method works the same on impacts of \code{splm} models.\r
230 \r
231 <<xtablesplmimpacts, results = 'asis'>>=\r
232 xtable(imp.spml)\r
233 @ %def\r
234 \r
235 \subsection{The package \pkg{sphet}}\r
236 \label{sec:package-pkgsphet}\r
237 \r
238 First load the package and create some objects.\r
239 <<datasphet>>=\r
240 library(sphet)\r
241 data("columbus", package = "spdep")\r
242 listw <- nb2listw(col.gal.nb)\r
243 data("coldis", package = "sphet")\r
244 res.stsls <- stslshac(CRIME ~ HOVAL + INC, data = columbus, listw = listw,\r
245                       distance = coldis, type = 'Triangular')\r
246 class(res.stsls)\r
247 \r
248 res.gstsls <- gstslshet(CRIME ~ HOVAL + INC, data = columbus, listw = listw)\r
249 class(res.gstsls)\r
250 \r
251 imp.gstsls <- impacts(res.gstsls, listw = listw)\r
252 class(imp.gstsls)\r
253 @ %def\r
254 \r
255 \r
256 \subsubsection{\code{sphet} objects}\r
257 \label{sec:codesphet-objects}\r
258 \r
259 <<xtablesphet, results = 'asis'>>=\r
260 xtable(res.stsls)\r
261 @ %def\r
262 \r
263 \p\r
264 <<xtablesphet1, results = 'asis'>>=\r
265 xtable(res.gstsls)\r
266 @ %def\r
267 \r
268 \code{sphet} also provides a method for computing impacts.\r
269 \r
270 <<xtablesphetimpacts, results = 'asis'>>=\r
271 xtable(imp.gstsls)\r
272 @ %def\r
273 \r
274 \section{The \pkg{zoo} package}\r
275 \label{sec:pkgzoo-package}\r
276 \r
277  \r
278 <<zoo, results = 'asis'>>=\r
279 library(zoo)\r
280 xDate <- as.Date("2003-02-01") + c(1, 3, 7, 9, 14) - 1\r
281 as.ts(xDate)\r
282 x <- zoo(rnorm(5), xDate)\r
283 xtable(x)\r
284 @ %def \r
285 \r
286 \r
287 \p\r
288 \r
289 <<zoots, results = 'asis'>>=\r
290 tempTs <- ts(cumsum(1 + round(rnorm(100), 0)),\r
291               start = c(1954, 7), frequency = 12)\r
292 tempTable <- xtable(tempTs, digits = 0)\r
293 tempTable\r
294 tempZoo <- as.zoo(tempTs)\r
295 xtable(tempZoo, digits = 0)\r
296 @ %def \r
297 \r
298 \r
299 \section{The \pkg{survival} package}\r
300 \label{sec:pkgsurvival-package}\r
301 \r
302  \r
303 <<survival, results = 'asis'>>=\r
304 library(survival)\r
305 test1 <- list(time=c(4,3,1,1,2,2,3), \r
306               status=c(1,1,1,0,1,1,0), \r
307               x=c(0,2,1,1,1,0,0), \r
308               sex=c(0,0,0,0,1,1,1)) \r
309 coxFit <- coxph(Surv(time, status) ~ x + strata(sex), test1) \r
310 xtable(coxFit)\r
311 @ %def \r
312 \r
313 \end{document}\r