3 USING S TO CREATE GRAPHICS FOR LAT
E
X
3 Using S to Create Graphics for L
A
T
E
X
PostScript is a graphics format accepted by all versions of LAT
E
Xas long as
you have aPostScript printer or haveGhostScript or AdobeAcrobat Distiller
to convert postscript output to other formats. The basic graphics driver in
Sfor creating postscript files is the
postscript
function. For creating 35mm
slides, overhead transparencies, or 5×7 glossy figures, the
ps.slide
function
in the Hmisc library assists in setting up nice defaults for postscript images.
For reports andbooks, the Hmisc
setps
functionmakes creating of individual
postscript graphics easy.
setps
uses reasonable defaults and sets up for a
minimally sized bounding box. It tries not to waste space between axes
and axis labels. In the following example, a file called
test.ps
is created in
the current working directory. Note the absence of quote marks around the
word
test
below.
setps(test)
#use setps(test, trellis=T) if using Trellis (R Lattice)
plot(....)
dev.off()
#close file,creating test.ps
As you will see later, we can symbolically label this figure using the word
test
in LAT
E
X. By default,
setps
uses Helvetica font and makes small book–
style figures. There are many options to override these and other settings.
If you are using
pdflatex
,graphics files must be in Adobe
pdf
format. You
can create
pdf
files directly in S-Plus using the builtin
pdf.graph
function,
in R using the
pdf
function, or using the Hmisc
setpdf
function. In older
versions of S-Plus, better results are obtained by creating postscript and
converting the graph to
pdf
. If you have Ghostscript installed and have
used
setps
followed by
dev.off
,you can type
topdf()
with no arguments
to invoke Ghostscript from S to create, in this case,
test.pdf
. You can
also convert from postscript to
pdf
using Adobe Acrobat Distiller, which
produces more compact
pdf
files. In R, direct creation of
.pdf
files seems to
work well.
3.1 Inserting Graphics Files into L
A
T
E
XDocuments
The standard
graphics
and
graphicx
packages in L
A
T
E
Xprovide all you need
to insert postscript and
pdf
graphics into a document in a flexible fashion.
11
Converting pdfs to html - Library control component: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
Converting pdfs to html - Library control component: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
4 MAKING S COMPOSE LAT
E
XTABLES
This is not to say that it is as easy as using Word; frequently some trial and
error is required to get graphics to have an appropriate scaling (magnifica-
tion) factor. Inclusion of
pdf
graphics in older versions of S-Plus and LAT
E
X
frequently resulted in much wasted spaced before and after the graph when
using
pdflatex
,so you often had to use \vspace commands with negative
arguments when including
pdf
files.
Here is a LAT
E
Xmacro for inserting
pdf
graphics files, which are assumed to
have a .pdf suffix.
% Usage: \fig{label=.pdf prefix}{caption}{short caption for list of
% figures}{scalefactor}
\newcommand{\fig}[4]{\begin{figure}[hbp!]
\leavevmode\centerline{\includegraphics[scale=#4]{#1.pdf}}
\caption[#3]{\small #2}
\label{#1}
\end{figure}}
For example,\fig{test}{long caption}{short caption}{.8} willinsert
test.pdf
and reduce its size by 20%. You can refer to this figure in the text
using for example see Figure~\ref{test}.
4 Making S Compose L
A
T
E
XTables
In many cases S functions can be used to make all calculations for the
table and then to create the LAT
E
X table. Harrell’s S
summary
function
for formulas (actually
summary.formula
) is one function that will do this
when what you need is descriptive statistics (including statistics computed
by functions you create).
summary
is in the Hmisc library available at
hesweb1.med.virginia.edu/biostat/s/Hmisc.html. It t has three meth-
ods for computing descriptive statistics on univariate or multivariate re-
sponses, subsetted by categories of other variables. See An Introduction
to S and the Hmisc and Design Libraries by CF Alzola and FE Harrell
(hesweb1.med.virginia.edu/biostat/s/doc/splus.pdf) for more infor-
mationabout
summary.formula
andS usage ingeneral, especially information
on how to recode and reshape data to be used in reports.
The output from
summary.formula
canbe printed (for ordinary text file print-
12
Library control component:OCR Images in Web Image Viewer | Online Tutorials
scanned documents & creating searchable PDFs in RasterEdge Online Convert PDF to Html. SUPPORT: for capturing, viewing, processing, converting, compressing and
www.rasteredge.com
Library control component:VB.NET Image: VB.NET Codes on How to Scan RM4SCC barcode in .NET
learn how to decode an RM4SCC 1D barcode from images, PDFs and Word tiff files and components for capturing, viewing, processing, converting, compressing and
www.rasteredge.com
4 MAKING S COMPOSE LAT
E
XTABLES
outs), plotted (dot charts or occasionally box-percentile plots), or typeset
using LAT
E
X, as there are several
print
,
plot
,and
latex
methods for objects
created by
summary.formula
. The
latex
methods create all the needed ta-
ble elements, then invoke the
latex.default
method in
Hmisc
to build the
complete set of LAT
E
Xcommands to make each table.
The method of data summarization to be done by
summary.formula
is spec-
ified in the parameter
method
. These methods are defined below. For the
first and third methods, the statistics used to summarize the data may be
specified in a flexible manner by the user (e.g., the geometric mean, 33
rd
percentile, or Kaplan–Meier 2–year survival estimate, mixtures of several
statistics). The default summary statistic is the mean, which for a binary
response variable is the proportion of positive responses.
method=’response’
: The response variable may be multivariate, and any
number of statistics may be used to summarize the responses. Some-
times dependent variables aremultivariatebecause they indicate follow–
up time and censoring, and sometimes they are multivariate because
there are several response variables (e.g., systolic and diastolic blood
pressure). The responses are summarized separately for each indepen-
dent variable (independent variables are not cross–classified). Contin-
uous independent variables are automatically stratified into quantile
groups. One or more of the independent variables may be stratifica-
tion factors, in which all computations are done separately by levels
of these categorical variables. The stratification variables form major
column groupings in tables. For multivariate responses, subjects are
considered to be missing if any response variable is missing.
method=’reverse’
: This format is typical of baseline characteristic tables
describing the usual success of randomization. Here the single depen-
dent variable must be categorical (e.g., treatment assignment), and the
“independent” variables are broken down separately by the dependent
variable. Continuous independent variables are described by three
quantiles (quartiles by default), and categorical ones are described by
counts and percentages. There is an option to automatically generate
test statistics for testing across columns of
’reverse’
tables.
method=’cross’
: The
’cross’
method allows allows for multiple dependent
variables and multiple statistics to summarize each one. If there is
more than one independent variable (up to three is allowed), statistics
13
Library control component:.NET PDF Generator | Generate & Manipulate PDF files
Add, remove, swap and delete any pages in PDFs; Add metadata of imaging controls and components for capturing, viewing, processing, converting, compressing and
www.rasteredge.com
Library control component:OCR Images in .NET Winforms | Online Tutorials
SDK to recognize text from scanned documents & creating searchable PDFs. files and components for capturing, viewing, processing, converting, compressing and
www.rasteredge.com
4 MAKING S COMPOSE LAT
E
XTABLES
are computed separately for allcross–classifications of the independent
variables, and marginal and overall statistics may optionally be com-
puted.
summary.formula
for this method outputs a data frame contain-
ing the combinations of predictors along with the response summaries.
This data frame may be summarized graphically in various ways using
the S-Plus
trellis
library or R
lattice
package
5
. A LAT
E
Xprinting
method, for the case where there is exactly two predictors, typesets
atwo–way table where the first predictor forms rows and the second
forms columns. Like
method=’response’
,continuous variables are au-
tomatically divided into quantile groups.
The
latex
methods in the
Hmisc
library create tables using standard LAT
E
X
commands. These tables are inserted into the master document at the de-
sired location using an \input{} command.
latex
methods allow a font
size
argument. For example, you may specify
size=’small’
to
latex()
,or
you may want to use a generic size that is set at LAT
E
Xrun time in the
document preamble. For example, specify \def\tsz{small} in the master
document and specify
size=’tsz’
to
latex()
.Then you can define (and re-
define) the size for tables without modifying the individual
.tex
files created
by
latex()
. Another approach using L
A
T
E
X’s
relsize
style is discussed on
P.30.
4.1 Reports Formatted to Describe Responses
Tables48 were produced by the S
latex
function (actually,
latex.summary.formula.response
), which is run on an object created by the
summary
function with
method=’response’
,the default.
Table4 presents Kaplan–Meier 2 and5 year survival estimates and mean life
length of subjects in the Mayo Clinic primary biliary cirrhosis dataset avail-
able fromhesweb1.med.virginia.edu/biostat/s/data. The calculations
are subsetted on various patient characteristics. For estimating mean life
length, an exponential survival model was assumed (the estimate is years
per event). Continuous variables are categorized into quartiles automati-
cally. Each quartile group is identified using the upper and lower endpoints
within that quartile. The code for this example follows.
5
For this purpose, the Hmisc
summarize
function may be more useful, if you don’t want
marginal statistics computed.
14
Library control component:Online Merge PDF files. Best free online merge PDF tool.
delete single pages. Also you can add more PDFs to combine them and merge them into one single document. Easy converting! We try to
www.rasteredge.com
4 MAKING S COMPOSE LAT
E
XTABLES
getHdata(pbc)
#getHdata is in Hmisc; downloads datasets from UVa web site
#Variables in pbc had units in ( ) insidevariable labels. Move
#these units of measurements to separate units attributes
pbc ← upData(pbc, moveUnits=TRUE)
attach(pbc)
#Example 1: For each variablelevel, estimateKaplan-Meier 2 and 5-year
#survival probabilities and mean life length assuming an exponential
#distribution. Note the 3 names given to the computations. These
#will be used in column headings.
#Function to efficiently use Therneau’s survfit.km to estimate
#survival at fixed time points for a single stratum. Assumes S is a
#Surv object
kmsurv ← function(S, times) {
f ← survfit.km(factor(rep(1,nrow(S))), S)
tt ← c(0, f$time)
ss ← c(1, f$surv)
#add first point to survivalcurve
approx(tt, ss, xout=times, method=’constant’, f=0)$y
}
#Put probability estimates together with mean lifelength
describe.survival ← function(y) {
km ← kmsurv(y, c(2,5))
c(’2 Year’=km[1], ’5 Year’=km[2], ’Mean, y’=sum(y[,1])/sum(y[,2]))
}
library(survival)
S ← Surv(fu.days/365.25, status)
s1 ← summary(S ∼ age + albumin + ascites + bili + drug + edema + chol,
fun=describe.survival)
#Make2 graphs: (1) survival probabilities (2) mean life length
#First graph contains results from 2 calls to plot (add=T 2nd time)
15
4 MAKING S COMPOSE LAT
E
XTABLES
The EXAMPLE Study
Protocolxyz–001
February 4, 2003
for(w in 1:2) {
if(w==1) setpdf(f1a,sublines=1,h=5.25) else
setpdf(f1b,sublines=1,h=5)
plot(s1, which=if(w==1)1:2 else 3,
cex.labels=.7, subtitles=T, main=’’,
pch=if(w==2) 16 else c(’2’,’5’),
# 16=solid circle
xlab=if(w==2)’Survival Time’ else ’Survival Probability’)
dev.off()
}
w ← latex(s1, cdec=c(2,2,1), ctable=TRUE, caption=’Survival’)
#Creates s1.tex (Table4)
This table is converted to two dot plots (Figures1 and2) using the
plot
method for an object created by
summary
with
method=’response’
(see pre-
vious code). The Hmisc
setpdf
function is used to create the
pdf
graphics
files. See Section10 for the L
A
T
E
Xcode used to insert these graphics.
Table5 is similar to Table4 except that the Kaplan–Meier estimates are not
shown, life length estimates are also stratified by treatment assigned (using
the
stratify
function), and continuous variables are grouped into tertiles.
#Example 2: Stratify mean lifelength (only) by drug groups. Thesewill
#becomemajor column groupings. Use tertiles instead of quartiles.
life.expect ← function(y) c(Years=sum(y[,1])/sum(y[,2]))
s2 ← summary(S ∼ age + albumin + ascites + edema + stratify(drug),
fun=life.expect, g=3)
#Note: You can summarize other response variables using the same independent
#variables using e.g. update(s2, response∼.), or you can change the
#list of independent variables using e.g. update(s2, response ∼.- ascites)
#or update(s2, .∼.-ascites)
setpdf(f2, h=4)
plot(s2, cex.labels=.6, xlim=c(0,40),
#Figure3
xlab=’Mean Life Length’, main=’’)
Key(-.56,.06)
dev.off()
16
4 MAKING S COMPOSE LAT
E
XTABLES
The EXAMPLE Study
Protocolxyz–001
February 4, 2003
Table 4: Survival
N=418
N
2Year 5 Year Mean, y
Age
[26.3,43.0)
105
0.98
0.86
27.5
[43.0,51.2)
107
0.85
0.71
15.0
[51.2,58.3)
102
0.88
0.71
12.5
[58.3,78.4]
104
0.81
0.54
8.4
Albumin
gm/dl
[1.96,3.25)
105
0.72
0.45
5.8
[3.25,3.54)
105
0.88
0.64
11.9
[3.54,3.78)
104
0.97
0.85
24.5
[3.78,4.64]
104
0.95
0.85
22.5
ascites
absent
288
0.94
0.76
16.3
present
24
0.38
0.17
2.3
Missing
106
0.84
0.68
13.4
Serum Bilirubin
mg/dl
[0.3, 0.9)
123
0.96
0.94
44.7
[0.9, 1.5)
95
0.95
0.86
24.4
[1.5, 3.5)
98
0.90
0.66
10.8
[3.5,28.0]
102
0.71
0.28
4.3
drug
D-penicillamine
154
0.88
0.71
14.0
placebo
158
0.91
0.71
13.4
not randomized
106
0.84
0.68
13.4
edema
no edema
354
0.93
0.77
17.1
edema, no diuretic therapy
44
0.73
0.47
6.9
edema despite diuretic therapy
20
0.30
0.08
1.8
Cholesterol
mg/dl
[120, 250)
71
0.80
0.71
13.9
[250, 310)
71
0.93
0.87
20.8
[310, 404)
72
0.92
0.73
15.2
[404,1775]
70
0.94
0.54
8.4
Missing
134
0.84
0.67
13.7
Overall
418
0.88
0.70
13.6
17
4 MAKING S COMPOSE LAT
E
XTABLES
The EXAMPLE Study
Protocolxyz–001
February 4, 2003
Survival Probability
0.2
0.4
0.6
0.8
1.0
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
105
107
102
104
105
105
104
104
288
24
106
123
95
98
102
154
158
106
354
44
20
71
71
72
70
134
418
N
absent  
present  
Missing  
D−penicillamine  
placebo  
not randomized  
no edema  
edema, no diuretic therapy  
edema despite diuretic therapy  
Missing  
[26.3,43.0) 
[43.0,51.2) 
[51.2,58.3) 
[58.3,78.4] 
[1.96,3.25) 
[3.25,3.54) 
[3.54,3.78) 
[3.78,4.64] 
[0.3, 0.9) 
[0.9, 1.5) 
[1.5, 3.5) 
[3.5,28.0] 
[120, 250) 
[250, 310) 
[310, 404) 
[404,1775] 
Age  
Albumin  [gm/dl]  
ascites  
Serum Bilirubin  [mg/dl]  
drug  
edema  
Cholesterol  [mg/dl]  
Overall  
N=418
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
N=418
Figure 1:
Two and five–year Kaplan–Meier survival probability estimates
18
4 MAKING S COMPOSE LAT
E
XTABLES
The EXAMPLE Study
Protocolxyz–001
February 4, 2003
Survival Time
10
20
30
40
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
105
107
102
104
105
105
104
104
288
24
106
123
95
98
102
154
158
106
354
44
20
71
71
72
70
134
418
N
absent  
present  
Missing  
D−penicillamine  
placebo  
not randomized  
no edema  
edema, no diuretic therapy  
edema despite diuretic therapy  
Missing  
[26.3,43.0) 
[43.0,51.2) 
[51.2,58.3) 
[58.3,78.4] 
[1.96,3.25) 
[3.25,3.54) 
[3.54,3.78) 
[3.78,4.64] 
[0.3, 0.9) 
[0.9, 1.5) 
[1.5, 3.5) 
[3.5,28.0] 
[120, 250) 
[250, 310) 
[310, 404) 
[404,1775] 
Age  
Albumin  [gm/dl]  
ascites  
Serum Bilirubin  [mg/dl]  
drug  
edema  
Cholesterol  [mg/dl]  
Overall  
N=418
Figure 2:
Estimated mean life length from an exponential survival model
19
4 MAKING S COMPOSE LAT
E
XTABLES
The EXAMPLE Study
Protocolxyz–001
February 4, 2003
Table 5: S by drug
N=418
D-penicillamine
placebo
not randomized
N
Years
N
Years
N
Years
Age
[26.3,46.0)
65
24.1
50
18.6
25
60.7
[46.0,55.5)
48
13.1
51
11.7
40
10.8
[55.5,78.4]
41
7.9
57
12.0
41
10.3
Albumin
gm/dl
[1.96,3.36)
45
6.8
52
5.9
43
9.2
[3.36,3.69)
60
15.5
45
18.8
34
12.1
[3.69,4.64]
49
25.4
61
23.3
29
25.5
ascites
absent
144
16.5
144
16.1
0
present
10
1.6
14
2.9
0
Missing
0
0
106
13.4
edema
no edema
131
17.2
132
17.7
91
15.9
edema, no diuretic therapy
13
7.3
16
7.5
15
5.8
edema despite diuretic therapy
10
2.5
10
1.2
0
Overall
154
14.0
158
13.4
106
13.4
w ← latex(s2, cdec=1, ctable=TRUE)
This table is converted to a dot plot in Figure3.
Table 6 displays quartiles of cholesterol and bilirubin by various patient
characteristics. To compute statistics simultaneously for cholesterol and
bilirubin, we must use the S
cbind
function to create a bivariate response
variable (a 2–column matrix). To compute quantiles for this new 2–variable
entity we have to use the
apply
function instead of a simple invocation to
quantile
.For
age
,pre–specified intervals are used.
#Example 3: Take control of groups used for age. Compute 3 quartiles for
#both cholesterol and bilirubin (excluding observations that are missing
#on EITHER ONE)
20
Documents you may be interested
Documents you may be interested