%\VignetteIndexEntry{xtable Other Packages Gallery} %\VignetteDepends{xtable} %\VignetteKeywords{LaTeX, HTML, table} %\VignettePackage{xtable} % !Rnw weave = knitr % \VignetteEngine{knitr::knitr} %************************************************************************** \documentclass{article} \usepackage[a4paper, height=24cm]{geometry} % geometry first \usepackage{array} \usepackage{booktabs} \usepackage{longtable} \usepackage{parskip} \usepackage{rotating} \usepackage{tabularx} \usepackage{titlesec} \usepackage{hyperref} % hyperref last \titleformat\subsubsection{\bfseries\itshape}{}{0pt}{} \newcommand\p{\vspace{2ex}} \newcommand\code[1]{\texttt{#1}} \newcommand\pkg[1]{\textbf{#1}} \setcounter{tocdepth}{2} \begin{document} \title{\bfseries\Large The Other Packages Gallery} \author{\bfseries David J. Scott} \maketitle \tableofcontents \newpage \section{Introduction} This document represents a test of the functions in \pkg{xtable} which deal with other packages. <>= library(knitr) opts_chunk$set(fig.path = 'Figures/other', debug = TRUE, echo = TRUE) opts_chunk$set(out.width = '0.9\\textwidth') @ The first step is to load the package and set some options for this document. <>= library(xtable) options(xtable.floating = FALSE) options(xtable.timestamp = "") options(width = 60) set.seed(1234) @ % \section{The packages \pkg{spatialreg}, \pkg{spdep}, \pkg{splm}, and \pkg{sphet}} % Code for supporting these packages and most of the examples used in % this section was originally provided by Martin Gubri % (\url{martin.gubri@framasoft.org}). % \subsection{The package \pkg{spdep}} % \label{sec:package-pkgspdep} % First load the package and create some objects. % <>= % library(spdep) % library(spatialreg, warn.conflicts = FALSE) % data("oldcol", package = "spdep") % data.in.sample <- COL.OLD[1:44,] % data.out.of.sample <- COL.OLD[45:49,] % listw.in.sample <- nb2listw(subset(COL.nb, !(1:49 %in% 45:49))) % listw.all.sample <- nb2listw(COL.nb) % COL.lag.eig <- lagsarlm(CRIME ~ INC + HOVAL, data = data.in.sample, % listw.in.sample) % class(COL.lag.eig) % COL.errW.GM <- GMerrorsar(CRIME ~ INC + HOVAL, data = data.in.sample, % listw.in.sample, returnHcov = TRUE) % class(COL.errW.GM) % COL.lag.stsls <- stsls(CRIME ~ INC + HOVAL, data = data.in.sample, % listw.in.sample) % class(COL.lag.stsls) % p1 <- predict(COL.lag.eig, newdata = data.out.of.sample, % listw = listw.all.sample) % class(p1) % p2 <- predict(COL.lag.eig, newdata = data.out.of.sample, % pred.type = "trend", type = "trend") % #type option for retrocompatibility with spdep 0.5-92 % class(p2) % imp.exact <- impacts(COL.lag.eig, listw = listw.in.sample) % class(imp.exact) % imp.sim <- impacts(COL.lag.eig, listw = listw.in.sample, R = 200) % class(imp.sim) % @ %def % \subsubsection{\code{sarlm} objects} % \label{sec:codesarlm-objects} % There is an \code{xtable} method for objects of this type. % <>= % xtable(COL.lag.eig) % @ %def % The method for \code{xtable} actually uses the summary of the object, % and an identical result is obtained when using the summary of the % object, even if the summary contains more additional information. % <>= % xtable(summary(COL.lag.eig, correlation = TRUE)) % @ %def % This same pattern applies to the other objects from this group of packages. % Note that additional prettying of the resulting table is possible, as % for any table produced using \code{xtable}. For example using the % \pkg{booktabs} package we get: % <>= % print(xtable(COL.lag.eig), booktabs = TRUE) % @ %def % \subsubsection{\code{gmsar} objects} % \label{sec:codegmsar-objects} % <>= % xtable(COL.errW.GM) % @ %def % \subsubsection{\code{stsls} objects} % \label{sec:codestsls-objects} % <>= % xtable(COL.lag.stsls) % @ %def % \subsubsection{\code{sarlm.pred} objects} % \label{sec:codesarlmpred-objects} % \code{xtable} has a method for predictions of \code{sarlm} models. % <>= % xtable(p1) % @ %def % This method transforms the \code{sarlm.pred} objects into data frames, % allowing any number of attributes vectors which may vary according to % predictor types. % <>= % xtable(p2) % @ %def % \subsubsection{\code{lagImpact} objects} % \label{sec:codelagimpact-objects} % The \code{xtable} method returns the values of direct, indirect and % total impacts for all the variables in the model. The class % \code{lagImpact} has 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. % <>= % xtable(imp.exact) % @ %def % \p % <>= % xtable(imp.sim) % @ %def % \subsubsection{\code{spautolm} objects} % \label{sec:codespautolm-objects} % The need for an \code{xtable} method for \code{spautolm} was expressed % by Guido Schulz (\url{schulzgu@student.hu-berlin.de}), who also % provided an example of an object of this type. The required code was % implemented by David Scott (\url{d.scott@auckland.ac.nz}). % First create an object of the required type. % <>= % library(spdep) % example(NY_data) % spautolmOBJECT <- spautolm(Z ~ PEXPOSURE + PCTAGE65P,data = nydata, % listw = listw_NY, family = "SAR", % method = "eigen", verbose = TRUE) % summary(spautolmOBJECT, Nagelkerke = TRUE) % @ %def % \p % <>= % class(spautolmOBJECT) % @ %def % <>= % xtable(spautolmOBJECT, % display = c("s",rep("f", 3), "e"), digits = 4) % @ %def % \subsection{The package \pkg{splm}} % \label{sec:package-pkgsplm} % First load the package and create some objects. % <>= % library(splm) % data("Produc", package = "plm") % data("usaww", package = "splm") % fm <- log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp % ## the two standard specifications (SEM and SAR) one with FE % ## and the other with RE: % ## fixed effects panel with spatial errors % fespaterr <- spml(fm, data = Produc, listw = mat2listw(usaww), % model="within", spatial.error="b", Hess = FALSE) % summary(fespaterr) % ## random effects panel with spatial lag % respatlag <- spml(fm, data = Produc, listw = mat2listw(usaww), % model="random", spatial.error="none", lag=TRUE) % summary(respatlag) % ## calculate impact measures % impac1 <- splm:::impacts.splm(respatlag, % listw = mat2listw(usaww, style = "W"), % time = 17) % summary(impac1, zstats = TRUE, short = TRUE) % GM <- spgm(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp, data = Produc, % listw = usaww, moments = "fullweights", spatial.error = TRUE) % class(GM) % @ %def % \subsubsection{\code{splm} objects} % \label{sec:codesplm-objects} % <>= % xtable(respatlag) % @ %def % \p % <>= % xtable(GM) % @ %def % The \code{xtable} method works the same on impacts of \code{splm} models. % <>= % xtable(impac1) % @ %def % \subsection{The package \pkg{sphet}} % \label{sec:package-pkgsphet} % First load the package and create some objects. % <>= % library(sphet) % data("columbus", package = "spdep") % listw <- nb2listw(col.gal.nb) % data("coldis", package = "sphet") % res.stsls <- stslshac(CRIME ~ HOVAL + INC, data = columbus, listw = listw, % distance = coldis, type = 'Triangular') % class(res.stsls) % @ %def % \subsubsection{\code{sphet} objects} % \label{sec:codesphet-objects} % <>= % xtable(res.stsls) % @ %def \section{The \pkg{zoo} package} \label{sec:pkgzoo-package} <>= library(zoo) xDate <- as.Date("2003-02-01") + c(1, 3, 7, 9, 14) - 1 as.ts(xDate) x <- zoo(rnorm(5), xDate) xtable(x) @ %def \p <>= tempTs <- ts(cumsum(1 + round(rnorm(100), 0)), start = c(1954, 7), frequency = 12) tempTable <- xtable(tempTs, digits = 0) tempTable tempZoo <- as.zoo(tempTs) xtable(tempZoo, digits = 0) @ %def \section{The \pkg{survival} package} \label{sec:pkgsurvival-package} <>= library(survival) test1 <- list(time=c(4,3,1,1,2,2,3), status=c(1,1,1,0,1,1,0), x=c(0,2,1,1,1,0,0), sex=c(0,0,0,0,1,1,1)) coxFit <- coxph(Surv(time, status) ~ x + strata(sex), test1) xtable(coxFit) @ %def \end{document}