%\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{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) %% 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 %% respatlag <- spml(fm, data = Produc, listw = mat2listw(usaww), %% model="random", spatial.error="none", lag=TRUE) %% class(respatlag) %% GM <- spgm(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp, data = Produc, %% listw = usaww, moments = "fullweights", spatial.error = TRUE) %% class(GM) %% imp.spml <- impacts(respatlag, listw = mat2listw(usaww, style = "W"), time = 17) %% class(imp.spml) %% @ %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(imp.spml) %% @ %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}