Statistical Tables and Plots using S and L
A
T
E
X
FE Harrell
Division of Biostatistics and Epidemiology
Department of HealthEvaluation Sciences
Universityof Virginia School of Medicine
fharrell@virginia.edu
hesweb1.med.virginia.edu/biostat
February 4,2003
Contents
1 Introduction to LAT
E
X
3
1.1 TwoLAT
E
XOutputModes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.2 Basic Table Makingin LAT
E
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2 Using S to Fill in Cells inL
A
T
E
XTables
8
3 Using S to Create Graphics for L
A
T
E
X
11
3.1 InsertingGraphics FilesintoLAT
E
XDocuments . . . . . . . . . . . . . 11
4 Making S Compose LAT
E
XTables
12
DocumentAddress: hesweb1.med.virginia.edu/biostat/s/doc/summary.pdf. This
document was produced using TeT
E
Xon RedHat 8.0 Linux using R version 1.6.1 and
version1.5-0(31Jan03)ofthe
Hmisc
library. Allcommandsand outputwillbethesame
forS-PlusexceptthatGreekletters,superscripts,andsubscriptswillnotappearinplots.
1
Convert pdf to html form - software application dll:C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net, ASP.NET MVC, WinForms, WPF application
How to Convert PDF to HTML Webpage with C# PDF Conversion SDK
www.rasteredge.com
Convert pdf to html form - software application dll:VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.net, ASP.NET MVC, WinForms, WPF application
PDF to HTML Webpage Converter SDK for VB.NET PDF to HTML Conversion
www.rasteredge.com
LIST OFTABLES
LIST OFTABLES
4.1 Reports Formatted toDescribeResponses . . . . . . . . . . . . . . . . . . 14
4.2 BaselineCharacteristicTables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3 DataDisplaysfrom Cross–Classifying Variables . . . . . . . . . . . . . 38
5 Handling Special Variables
38
5.1 Multiple ChoiceVariables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.2 Conditionally Defined Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6 Alternate Approaches
44
6.1 LiterateProgramming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.2 L
A
T
E
XServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7 Data Preparation
45
8 Inserting LAT
E
XOutput into non–LAT
E
X Applications
48
9 SDocumention
50
10 LAT
E
XCode for This Document
50
List of Tables
1
Overall Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2
Overall Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
3
Statistical Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
4
Survival
N=418 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5
Sbydrug
N=418 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2
software application dll:VB.NET PDF Form Data Read library: extract form data from PDF in
RasterEdge .NET PDF SDK is such one provide various of form field edit functions. Demo Code to Retrieve All Form Fields from a PDF File in VB.NET.
www.rasteredge.com
software application dll:C# PDF Form Data Read Library: extract form data from PDF in C#.
A best PDF document SDK library enable users abilities to read and extract PDF form data in Visual C#.NET WinForm and ASP.NET WebForm applications.
www.rasteredge.com
1 INTRODUCTION TOLAT
E
X
LIST OFFIGURES
6
Cholesterol and Serum Bilirubin
N=284, 134Missing. . . . . 24
7
Serum Bilirubin (D-penicillamine)
N=154 . . . . . . . . . . . . . . . 25
8
Serum Bilirubin (placebo)
N=158 . . . . . . . . . . . . . . . . . . . . . . 25
9
DescriptiveStatistics bydrug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
10
DescriptiveStatistics bystage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
11
Fraction ofap > 1by sz, bone . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
List of Figures
1
Kaplan–Meierestimates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2
Estimated life length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3
Estimated life length stratified by treatment. . . . . . . . . . . . . . . . 21
4
Distribution ofcholesterol and bilirubin . . . . . . . . . . . . . . . . . . . . 23
5
Mean and median bilirubin fortreated patients . . . . . . . . . . . . . 26
6
Categorical variablesstratified by drug. . . . . . . . . . . . . . . . . . . . . 31
7
Continuous variablesstratified by drug. . . . . . . . . . . . . . . . . . . . . 32
8
Categorical variablesin prostate trial. . . . . . . . . . . . . . . . . . . . . . 36
9
Continuous variablesin prostatetrial. . . . . . . . . . . . . . . . . . . . . . 37
10
Proportion ofpatientswith AP >1.0 . . . . . . . . . . . . . . . . . . . . . 39
1 Introduction to L
A
T
E
X
LAT
E
Xis a public domain document processingsystem developed by Lam-
port(whichusesT
E
XbyKnuth)that isused heavilyin thesciences and by
3
software application dll:VB.NET PDF Convert to Jpeg SDK: Convert PDF to JPEG images in vb.
C#: Convert PDF to HTML; C#: Convert PDF to Jpeg; C# File C# Protect: Add Password to PDF; C# Form: extract value from fields; C# Annotate: PDF Markup & Drawing.
www.rasteredge.com
software application dll:C# PDF Convert to Jpeg SDK: Convert PDF to JPEG images in C#.net
C# PDF - Convert PDF to JPEG in C#.NET. C#.NET PDF to JPEG Converting & Conversion Control. Convert PDF to JPEG Using C#.NET. Add necessary references:
www.rasteredge.com
1 INTRODUCTION TOLAT
E
X
journaland book publishers
1
.LAT
E
Xisamarkup languagethat iscompiled
similar to programming languages such as C. LAT
E
Xis particularly strong
in layouts, cross–referencing, typesetting equations, making tables, biblio-
graphic citations, indexesand tables ofcontents, and allowing for insertion
of graphics in documents. This makes LAT
E
Xvery suitable for compiling
long statistical reports such as those used to support drug licensing. For
this purpose, major advantages of LAT
E
X include the ability to automati-
callycreatecross–references and toautomatically updateareportif anyof
its component graphics figures or tables changes. To accomplish the latter
capability,theanalystmerelyre–runsthestatisticalprogram thatproduced
the graphics or table components. These graphics and tables are read re-
spectively by L
A
T
E
Xby an \includegraphics{}or \input{} command, so
running the
latex
command to recompile to report will make any needed
updates. This is in distinction to Microsoft Word, which does not have a
batch inclusion capability.
Everythingin aLAT
E
Xsourcedocumentis plain text, soyou can edit these
documents using any text editor
2
and E–mail them to anyone. L
A
T
E
Xis
basedonthephilosophythatthewritershouldhaveaneasytimecomposing
and editing text
3
but sheshould not have to spend time makingtext look
good on the screen. Instead the writer needs to concentrate on the logical
elementsof composition; L
A
T
E
X’s job is tomakethefinal output lookgood.
1.1 Two L
A
T
E
XOutput Modes
When the
latex
commandis runtocompileyourLAT
E
Xsourcecode, LAT
E
X
producesadvi(“deviceindependent”)filecontainingthetypesetdocument
inaverycompactform. Graphicsarenotincludedinthedvifile,butpoint-
ers to the graphics files are included. The dvi file can be printed directly,
or it can be converted intoa self–contained postscript or pdf file. Here are
someexampleL
A
T
E
X-related system commands.
1
LAT
E
X is available on many platforms. Excellent free versions for Microsoft Win-
dowsareFPT
E
XbyFabricePopineauandMikT
E
X,bothavailableatwww.ctan.org. An
excellent freebook on LAT
E
Xis available at ctan.tug.org/tex-archive/info/lshort/
english/lshort.pdf
2
The
Emacs
editorhasaspecialmodeforeditingL
A
T
E
Xtextthatmakescomposingtext
mucheasier.
3
Forexample,withone
Emacs
commandyoucanchangethefirstwordofeveryfigure
captiontobeinanotherfont,orchangethesizeofallincludedfigures.
4
software application dll:VB.NET PDF Convert to Word SDK: Convert PDF to Word library in vb.
VB.NET PDF - Convert PDF to MS Office Word in VB.NET. VB.NET Tutorial for How to Convert PDF to Word (.docx) Document in VB.NET. Best
www.rasteredge.com
software application dll:VB.NET PDF Convert to Tiff SDK: Convert PDF to tiff images in vb.
VB.NET PDF - Convert PDF to TIFF Using VB in VB.NET. Free VB.NET Guide to Render and Convert PDF Document to TIFF in Visual Basic Class.
www.rasteredge.com
1 INTRODUCTION TOLAT
E
X
latex myfile
% create myfile.dvi from myfile.tex
dvips myfile
% send myfile to a postscript printer
dvips -o myfile.ps myfile
% convert myfile.dvi to myfile.ps, with
% graphics
dvips -Pwww -o myfile.ps myfile
% use Type 1 fonts
dvipdfm myfile
% convert myfile.dvi to myfile.pdf
pdflatex myfile
% creates myfile.pdf directly if no
% postscript graphics are referenced
CreationofastaticdocumentinoneofthesewaysistheusualmodeofLAT
E
X
usage. There is also away of using LAT
E
Xto create “live” documents that
areviewed on amonitor (either locally or over the web) or printed. These
pdfdocumentsmay contain bookmarks, hyperlinkstoexternal URLs,links
to E–mail addresses, etc. If you use the
hyperref
package in LAT
E
X, the
system will automatically make all pertinent elements of your document
cross–indexed and hyperlinked, and you can also insert special commands
to linktoareasoutsidethe document such asURLs and E–mail.
When viewingthedocumentusing Adobe Acrobat Reader, bookmarks can
appear in theleft margin, allowing theuser to click to jump toany major
section ofthedocument. Sectionshavingsub–sectionscanhavetheirbook-
marksexpandedsothatyoucanjumptothesub–sections. Youcanjumpto
anyfigurewhileviewingthe
List of Figures
andtoanytablewhileviewing
the
List of Tables
,in addition to jumping to any area while viewing the
Table of Contents
. Ifyour documentisindexed, you canjumptoanypage
for which an indexed phraseisdiscussed. Youcan optionally jump topages
inwhich agivenarticleiscitedwhileviewingthe
Bibliography
,inaddition
to the more standard jump from a citation to the bibliographic reference.
If the
colorlinks
option is selected (see code below), symbols that are hy-
perlinked appear in color; clickingon them will causethejump. All ofthis
is set up automatically by
hyperref
,unlike the large number of flags that
must be putin adocumentmanuallyif usingMicrosoft Word.
Instead of compiling the document using the
latex
system command, you
usethe
pdflatex
commandtocreatethepdffiledirectly,withallbookmarks
and hyperlinks.
This documentwascreated in thefashion just described.
PDF
graphics files
were created directly using an S
pdf
device driver. Below you will find the
code in the preamble of the document that set up the
pdf
document with
5
software application dll:C# PDF Convert to SVG SDK: Convert PDF to SVG files in C#.net, ASP
PDFDocument pdf = new PDFDocument(@"C:\input.pdf"); pdf.ConvertToVectorImages( ContextType.SVG, @"C:\demoOutput Description: Convert to html/svg files and
www.rasteredge.com
software application dll:C# PDF Convert to Tiff SDK: Convert PDF to tiff images in C#.net
C#.NET PDF SDK - Convert PDF to TIFF in C#.NET. Online C# Tutorial for How to Convert PDF File to Tiff Image File with .NET XDoc.PDF Control in C#.NET Class.
www.rasteredge.com
1 INTRODUCTION TOLAT
E
X
hyper–referencing.
\usepackage[pdftex,bookmarks,pagebackref,colorlinks,pdfpagemode=UseOutlines,
pdfauthor={Frank E Harrell Jr},
pdftitle={Statistical Tables and Plots using S and LaTeX}]{hyperref}
1.2 Basic Table Making in L
A
T
E
X
LAT
E
Xhas excellent facilities for composingand typesettingtables. Table1
isanexampleof auser–specifiedtableusingthreemacros—
btable
(begin
table),
etable
(end table), and
mc
(headings that span multiple columns).
Thesemacrossave repetitiveoperations. Macrosare usually defined at the
top ofthedocument.
%Usage: \btable{table specs}{caption}{reference label}
\newcommand{\btable}[3]{
\begin{table}[htbp]
\begin{center}
\caption{#2\label{#3}}
\begin{tabular}{#1}}
\newcommand{\etable}{\end{tabular}
\end{center}
\end{table}}
%Usage: \mc{number of columns spanned}{major column heading}
\newcommand{\mc}[2]{\multicolumn{#1}{c}{#2}}
\btable{l|ccccc}{Overall Results}{results} \hline\hline
%6 fields, justified left, center x 5
%double horizontal line at top, 1 vertical bar
& \mc{2}{Females} & & \mc{2}{Males} \\
% column 4 blank, for spacing
\cline{2-3} \cline{5-6}
% horizontal lines connecting cols. 2-3, 5-6
Treatment
& Mortality & Mean Pressure & & Mortality & Mean Pressure \\ \hline
Placebo
& 0.21 & 163 & & 0.22 & 164 \\
ACE Inhibitor & 0.13 & 142 & & 0.15 & 144 \\
Hydralazine
& 0.17 & 143 & & 0.16 & 140 \\ \hline
\etable
6
1 INTRODUCTION TOLAT
E
X
Table1: Overall Results
Females
Males
Treatment
Mortality Mean Pressure
Mortality Mean Pressure
Placebo
0.21
163
0.22
164
ACEInhibitor
0.13
142
0.15
144
Hydralazine
0.17
143
0.16
140
Theresultis Table1. However,thectablestyle, availablefromwww.ctan.
orgcanproduceprettiertablesmoreflexibly:
\ctable[caption={Overall Results},label=resultsb,pos=hbp!]{lccccc}{}{
\FL
& \mc{2}{Females} & & \mc{2}{Males} \NN
\cmidrule{2-3}\cmidrule{5-6} % Important: no space before \cmidrule
Treatment
& Mortality & Mean Pressure & & Mortality & Mean Pressure \ML
Placebo
& 0.21 & 163 & & 0.22 & 164 \NN
ACE Inhibitor & 0.13 & 142 & & 0.15 & 144 \NN
Hydralazine
& 0.17 & 143 & & 0.16 & 140 \LL
}
The resultis shown in Table2.
Table2: Overall Results
Females
Males
Treatment
Mortality Mean Pressure
Mortality Mean Pressure
Placebo
0.21
163
0.22
164
ACEInhibitor
0.13
142
0.15
144
Hydralazine
0.17
143
0.16
140
7
2 USINGS TO FILL INCELLS IN LAT
E
XTABLES
2 Using S to Fill in Cells in L
A
T
E
XTables
Formoststatisticaltablesabetterideaistoavoidtranscriptionofcalculated
values by having the values inserted into tables automatically. The Hmisc
library(seehesweb1.med.virginia.edu/biostat/s/Hmisc.html)contains
several S functions by R Heiberger and FHarrell that automatically make
LAT
E
XtablesfromSobjects
4
.SfunctionsthatautomaticallyproduceLAT
E
X
code from S objects (matrices, fitted models, data summaries, etc.) have
names that start with
latex
. Tables produced by the
latex.*
functions in
Hmisc
meetthestylisticrequirements of mostjournals, i.e., by default they
donotusevertical lines and theyusehorizontallinesonlywhen needed. In
thiswaythelinesdonotdistractfromdeliveringthestatisticalinformation.
Suppose thatsome calculations have already been madeusingS, and these
calculations werenotstored. For example,you mayhave estimated various
effectsandstandard errors butforgottostoretheS regressionfitobjectsso
that you can pull these values into tables automatically. You can use the
latex.default
functionthatispartof
Hmisc
forautomaticconversionofthe
calculationsintoLAT
E
X,afterenteringbasicstatisticsmanually. Letushave
Scalculate odds ratios and P–values to avoid transcribing them after we
print
ˆ
βand standard errors. Here is the S program for creating the table
thatis inserted intothis document as Table3.
lor ← c(.2362, .1131, .4621, .3351)
se ← c(.1234, .0989, .1812, .1612)
chisq ← (lor/se)
2
summary.stats ← cbind(
’Log Odds Ratio’=lor,
’Standard Error’=se,
’Odds Ratio’
=exp(lor),
’$\\chi
2$’
=chisq,
’$P$--value’
=1-pchisq(chisq,1) )
#$..$ :puts..inmathnotation (
=superscript)
4
Moreadvancedapplicationsofthisarefoundinthe
Design
library,suchasautomatic
L
A
T
E
Xtypesettingoffittedregressionmodelswithsimplificationofinteractionandspline
terms, and typesetting of χ
2
tables showing allregression effects. These examples are
beyond the scope of this document. See hesweb1.med.virginia.edu/biostat/s/doc/
splus.pdf,Chapter9.
8
2 USINGS TO FILL INCELLS IN LAT
E
XTABLES
Table 3: Statistical Results
LogOddsRatio Standard Error Odds Ratio
χ
2
P–value
Fatal Events
Death (all cause)
0.236
0.123
1.27
3.66
0.0556
Cancer Death
0.113
0.099
1.12
1.31
0.2528
Non–fatal Events
Relapse
0.462
0.181
1.59
6.50
0.0108
Hospitalization
0.335
0.161
1.40
4.32
0.0376
#-- :LaTeX X mediumlengthdash
summary.stats
#ordinaryprint
library(Hmisc)
#getaccess tolibrary
w ← latex(summary.stats, cdec=c(3, 3, 2, 2, 4), col.just=rep(’c’,5),
rowname=c(’Death (all cause)’,’Cancer Death’,
’Relapse’,’Hospitalization’),
rgroup=c(’Fatal Events’,’Non--fatal Events’),
rowlabel=’’, caption=’Statistical Results’,
ctable=TRUE)
#Table3
#Assignthelatextoanobject(w)sothatitdoesn’ttrytoprintnow
#cdec :Numberofdecimalplacesforthedifferentcolumns
#col.just:justificationofcolumnsintable(allcenteredhere)
There are many other options tothe basic
latex
function. Type
?latex
to
access theonlinehelp. You maybeparticularly interestedin the
longtable
option, which can be used to easily break a longtable into multiple pages
(with repetitions of key header information).
You can have your S program print hardcopy LAT
E
Xoutput directly using
the
prlatex
function. Moretypically though you will want theprogram to
create LAT
E
Xfiles (with suffix
.tex
)that will be put togetherlater. In this
wayyoucanaddtitlepages,runningheadersorfooters, andothertext, and
9
2 USINGS TO FILL INCELLS IN LAT
E
XTABLES
refer to tables by symbolicnames. This document serves as an exampleof
howthisis done, with itsLAT
E
Xcode listed in Section10.
If you like to specify table layouts inside the L
A
T
E
Xsource filerather than
insideS, you can haveyourS program output symbolicvalues toafilethat
is \input{}’d in L
A
T
E
Xas shown in the following example. A restriction
is that variable names defined to LAT
E
Xmay contain only letters and they
should not coincidewith namesof LAT
E
Xcommands.
chisq <- (beta/se)^2
pval <- 1 - pchisq(chisq, 1)
cat(’\\def\\chisq{’,round(chisq,2),’}\\n’,
# \\ -> \ in parms.tex
’\\def\\pval{’,round(pval,4),’}\n’, sep=’’, file=’parms.tex’)
IfLAT
E
Xvariablesarenamed thesameasSvariables,andthenamescontain
onlyletters,codecanbesimplifiedusingalittlefunction. Thisfunctioncan
alsoconvert
NA
sto blanks.
lvar <- function(x, digits=2)
paste(’\\def\\’,substitute(x),’{’,
ifelse(is.na(x),’’,round(x,digits)),’}’, sep=’’)
cat(lvar(chisq), lvar(pval,4), sep=’\n’, file=’parms.tex’)
The contentsof file
parms.tex
will look likethefollowing:
\def\chisq{3.84}
\def\pval{0.05}
Insidethemain LAT
E
Xsourcefile useforexample
\input{parms}
\ctable[caption={Main Results},label=resultsc]{lcc}{}{
Test
& $\chi^2$
& $P$--value \ML
Age effect & \chisq
& \pval
\LL
}
10
Documents you may be interested
Documents you may be interested