%\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.

<<set, include=FALSE>>=
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.
<<package, results='asis'>>=
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.
% <<dataspdep>>=
% 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.
% <<xtablesarlm, results = 'asis'>>=
% 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.

% <<xtablesarlmsumm, results = 'asis'>>=
% 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:

% <<xtablesarlmbooktabs, results = 'asis'>>=
% print(xtable(COL.lag.eig), booktabs = TRUE)
% @ %def

% \subsubsection{\code{gmsar} objects}
% \label{sec:codegmsar-objects}


% <<xtablegmsar, results = 'asis'>>=
% xtable(COL.errW.GM)
% @ %def

% \subsubsection{\code{stsls} objects}
% \label{sec:codestsls-objects}


% <<xtablestsls, results = 'asis'>>=
% 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.

% <<xtablesarlmpred, results = 'asis'>>=
% 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.

% <<xtablesarlmpred2, results = 'asis'>>=
% 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.

% <<xtablelagimpactexact, results = 'asis'>>=
% xtable(imp.exact)
% @ %def

% \p
% <<xtablelagimpactmcmc, results = 'asis'>>=
% 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.

% <<minimalexample, results = 'hide'>>=
% 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
% <<spautolmclass>>=
% class(spautolmOBJECT)
% @ %def


% <<xtablespautolm, results = 'asis'>>=
% 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.
% <<datasplm>>=
% 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}

% <<xtablesplm, results = 'asis'>>=
% xtable(respatlag)
% @ %def


% \p
% <<xtablegm, results = 'asis'>>=
% xtable(GM)
% @ %def



% The \code{xtable} method works the same on impacts of \code{splm} models.

% <<xtablesplmimpacts, results = 'asis'>>=
% xtable(impac1)
% @ %def

% \subsection{The package \pkg{sphet}}
% \label{sec:package-pkgsphet}

% First load the package and create some objects.
% <<datasphet>>=
% 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}

% <<xtablesphet, results = 'asis'>>=
% xtable(res.stsls)
% @ %def



\section{The \pkg{zoo} package}
\label{sec:pkgzoo-package}


<<zoo, results = 'asis'>>=
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

<<zoots, results = 'asis'>>=
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}


<<survival, results = 'asis'>>=
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}
