+\end_inset
+
+ (i.e.
+
+\family typewriter
+x[3]
+\family default
+) and the
+\begin_inset Formula $p$
+\end_inset
+
+-value of the test is
+\begin_inset Flex S/R expression
+status collapsed
+
+\begin_layout Plain Layout
+
+format.pval(t1$p.value)
+\end_layout
+
+\end_inset
+
+.
+ You can round these numbers using functions like
+\emph on
+round()
+\emph default
+ in R.
+
+\end_layout
+
+\begin_layout Standard
+
+\family roman
+\series medium
+\shape up
+\size normal
+\emph off
+\bar no
+\noun off
+\color none
+Now we look at a summary of the
+\family typewriter
+\series default
+\shape default
+\size default
+\emph default
+\bar default
+\noun default
+\color inherit
+iris
+\family roman
+\series medium
+\shape up
+\size normal
+\emph off
+\bar no
+\noun off
+\color none
+ dataset:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<iris-summary>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+summary(iris[,-5])
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float table
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset Caption
+
+\begin_layout Plain Layout
+Quantiles of the first four variables in the
+\family typewriter
+iris
+\family default
+ data.
+\begin_inset CommandInset label
+LatexCommand label
+name "tab:xtable-demo"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\align center
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\begin_layout Plain Layout
+
+<<xtable-demo,results=tex,echo=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+if (require('xtable')) {
+\end_layout
+
+\begin_layout Plain Layout
+
+print(xtable(sapply(iris[,-5], quantile)), floating=FALSE)
+\end_layout
+
+\begin_layout Plain Layout
+
+} else cat('the xtable package is not available! please install.packages("xtable"
+)')
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Usually people do not like such
+\begin_inset Quotes eld
+\end_inset
+
+raw
+\begin_inset Quotes erd
+\end_inset
+
+ output, and we can polish these messy numbers with the
+\series bold
+xtable
+\series default
+ package.
+ Table
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "tab:xtable-demo"
+
+\end_inset
+
+ is an example demonstrating how to use the
+\series bold
+xtable
+\series default
+ package with Sweave; note the chunk option
+\family typewriter
+results=tex
+\family default
+ makes sure that the R output is written out as raw LaTeX code instead of
+ being wrapped in a special environment (
+\family typewriter
+Soutput
+\family default
+).
+\end_layout
+
+\begin_layout Standard
+Figure
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:iris-pairs"
+
+\end_inset
+
+ and
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:iris-boxplots"
+
+\end_inset
+
+ are two simple examples of producing graphics output with Sweave.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\align center
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<iris-pairs,fig=TRUE,width=4.5,height=4.5>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+pairs(iris, col = iris$Species)
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption
+
+\begin_layout Plain Layout
+Scatter plot matrix of the
+\family typewriter
+iris
+\family default
+ data.
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:iris-pairs"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\align center
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<iris-boxplots,fig=TRUE,width=7,height=2,keep.source=F>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+par(mar=c(4,5,.1,.3), las=1)
+\end_layout
+
+\begin_layout Plain Layout
+
+boxplot(Sepal.Length~Species,data=iris,horizontal=TRUE,xlab='Sepal.Length')
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption
+
+\begin_layout Plain Layout
+Boxplots of sepal length grouped by species.
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:iris-boxplots"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+We can also export all the R code in an Sweave document as a single R script
+ (
+\family sans
+File\SpecialChar \menuseparator
+Export\SpecialChar \menuseparator
+R/S code
+\family default
+), which is done via
+\family typewriter
+R CMD Stangle
+\family default
+.
+\end_layout
+
+\begin_layout Section
+The
+\family sans
+Sweave
+\family default
+ Module
+\end_layout
+
+\begin_layout Standard
+The
+\family sans
+Sweave
+\family default
+ module declares that a LyX document contains literate programming components
+ with R, so that LyX will handle such documents according to the specific
+ converters (see the Customization manual).
+ The
+\family sans
+Sweave
+\family default
+ module uses the
+\family sans
+sweave
+\family default
+ converter, which essentially consists of an R script
+\family sans
+lyxsweave.R
+\family default
+ under the
+\family sans
+scripts
+\family default
+ directory of LyX.
+ This script takes an
+\family sans
+Rnw
+\family default
+ document from LyX and call Sweave to process it to a TeX document, then
+ LyX takes care of the rest of work.
+\end_layout
+
+\begin_layout Standard
+The converter from the
+\family sans
+sweave
+\family default
+ format to LaTeX is a call to R via the command line as:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{verbatim}
+\end_layout
+
+\begin_layout Plain Layout
+
+Rscript --no-save --no-restore $$s/scripts/lyxsweave.R $$p$$i $$p$$o $$e
+ $$r
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{verbatim}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+The LyX library directory
+\family typewriter
+$$s
+\family default
+ can be found from the menu
+\family sans
+Help\SpecialChar \menuseparator
+About LyX
+\family default
+.
+ All the rest of options passed to R are explained in the R script, and
+ the LyX Customization manual also has detailed explanations about
+\family typewriter
+$$i
+\family default
+,
+\family typewriter
+$$o
+\family default
+,
+\family typewriter
+$$e
+\family default
+ and
+\family typewriter
+$$r
+\family default
+.
+ General users do not need to know clearly what they mean, but here we need
+ to explain a few issues in the R code:
+\end_layout
+
+\begin_layout Enumerate
+the encoding string of the LyX document is passed to R as an command line
+ option; possible values are
+\family typewriter
+ISO-8859-15
+\family default
+ and
+\family typewriter
+UTF-8
+\family default
+, etc.
+ The encoding is used for R to read the
+\family sans
+Rnw
+\family default
+ document correctly.
+\end_layout
+
+\begin_layout Enumerate
+the R code chunks in the Sweave document are executed under the directory
+ of the LyX document (if you are not sure, put
+\family typewriter
+getwd()
+\family default
+ in a code chunk to see what is the current working directory).
+ In this case, you can put data files under the same directory and use relative
+ paths in R to guarantee reproducibility, i.e.
+ we do not need to write hard-coded paths which may not exist in other systems.
+\end_layout
+
+\begin_layout Enumerate
+if LaTeX cannot find
+\family sans
+Sweave.sty
+\family default
+, this R script will copy it to the temporary directory automatically where
+ the LaTeX compilation takes place.
+\end_layout
+
+\begin_layout Enumerate
+Sweave will use the filename of the Rnw file as the prefix string for the
+ graphics output by default; one known issue (
+\begin_inset CommandInset href
+LatexCommand href
+name "#7551"
+target "http://www.lyx.org/trac/ticket/7551"
+
+\end_inset
+
+) is that if the filename (without extension) contains dots, LaTeX can fail
+ to deal with such files in
+\family typewriter
+
+\backslash
+includegraphics{}
+\family default
+.
+ Therefore, we have set the default value of the prefix to be the filename
+ with all the dots being replaced by
+\begin_inset Quotes eld
+\end_inset
+
+-
+\begin_inset Quotes erd
+\end_inset
+
+.
+ We can also solve this problem in Sweave directly: set the Sweave option
+
+\family typewriter
+prefix.string
+\family default
+ to be a character string without dots, and this option will override the
+ default value.
+\end_layout
+
+\begin_layout Standard
+We have pre-specified an option
+\family typewriter
+noae
+\family default
+ for the Sweave package.
+ This option stops Sweave from loading these two packages:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{verbatim}
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+RequirePackage[T1]{fontenc}
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+RequirePackage{ae}
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{verbatim}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+LyX can deal with the font encoding by default, so there is no need to ask
+ Sweave to do this (furthermore, this may bring clashes of package options);
+ besides, the users can load the
+\series bold
+ae
+\series default
+ package by themselves in the preamble if needed.
+\end_layout
+
+\begin_layout Section
+Trouble Shooting
+\end_layout
+
+\begin_layout Standard
+Since LyX 2.0, we can see the detailed information during compilation via
+
+\family sans
+View\SpecialChar \menuseparator
+View Messages
+\family default
+.
+ This is extremely helpful for trouble shooting -- the process of R will
+ be shown in the message panel, and we will be able to know which chunk
+ goes wrong in cases of errors.
+ For example, when you compile this document, you can see messages like
+ below:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{verbatim}
+\end_layout
+
+\begin_layout Plain Layout
+
+17:58:47.868: Processing code chunks with options ...
+\end_layout
+
+\begin_layout Plain Layout
+
+17:58:47.885: 1 : echo keep.source term verbatim (label=setup)
+\end_layout
+
+\begin_layout Plain Layout
+
+17:58:47.889: 2 : echo keep.source (label=sweave-manual)
+\end_layout
+
+\begin_layout Plain Layout
+
+17:58:47.908: 3 : echo keep.source term verbatim (label=print-integers)
+\end_layout
+
+\begin_layout Plain Layout
+
+....
+\end_layout
+
+\begin_layout Plain Layout
+
+17:58:47.941: Loading required package: xtable
+\end_layout
+
+\begin_layout Plain Layout
+
+17:58:47.976: 9 : echo term verbatim pdf (label=iris-pairs)
+\end_layout
+
+\begin_layout Plain Layout
+
+....
+\end_layout
+
+\begin_layout Plain Layout
+
+17:58:48.116: You can now run (pdf)latex on 'sweave.tex'
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{verbatim}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+The string after
+\family typewriter
+label=
+\family default
+ is the chunk label.
+ If any chunk causes an error in R, you will see the error message here
+ immediately.
+\end_layout
+
+\begin_layout Standard
+Another known issue is the Sweave code chunk may fail when we change the
+ alignment of the chunk paragraph in LyX (using
+\family sans
+Paragraph settings
+\family default
+), because LyX may add a macro like
+\family typewriter
+
+\backslash
+centering{}
+\family default
+ before the code chunk without adding a new line, which will lead to a code
+ chunk like this:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{verbatim}
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+centering{}<<xtable-demo,results=tex,echo=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{verbatim}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+This is not a legitimate Sweave code chunk, since
+\family typewriter
+<<>>=
+\family default
+ must start in a new line with nothing before it.
+ Therefore we recommend you to double check the real source code via
+\family sans
+View\SpecialChar \menuseparator
+View Source
+\family default
+ when changing the alignment of a chunk paragraph, and make sure
+\family typewriter
+<<>>=
+\family default
+ appears in a new line.
+ This explains why we manually added an empty line in the code chunk in
+ Table
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "tab:xtable-demo"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Section
+Resources
+\end_layout
+
+\begin_layout Standard
+The homepage of Sweave is at
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://www.stat.uni-muenchen.de/~leisch/Sweave/
+\end_layout
+
+\end_inset
+
+.
+ The CRAN task view on
+\begin_inset Quotes eld
+\end_inset
+
+Reproducible Research
+\begin_inset Quotes erd
+\end_inset
+
+ has a list of Sweave-related packages which can be potentially useful;
+ see
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://cran.r-project.org/web/views/ReproducibleResearch.html
+\end_layout
+
+\end_inset
+
+.
+ Questions about LyX and Sweave can be posted to the LyX mailing list (
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://www.lyx.org/MailingLists
+\end_layout
+
+\end_inset
+
+).
+ More LyX examples are provided at
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+https://github.com/yihui/lyx
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Section
+FAQ
+\end_layout
+
+\begin_layout Subsection
+How to use Sweave with beamer?
+\end_layout
+
+\begin_layout Standard
+You will end up with LaTeX errors if you use Sweave in beamer slides in
+ LyX; the reason is the beamer frame that contains verbatim R code and output
+ must have the
+\family typewriter
+fragile
+\family default
+ option.
+ However, currently there is no straightforward way to do this.
+ One way is to write raw TeX code, and the other is to use the
+\family sans
+beamer-fragile.module
+\family default
+ discussed in
+\begin_inset CommandInset href
+LatexCommand href
+name "#7273"
+target "http://www.lyx.org/trac/ticket/7273"
+
+\end_inset
+
+ (put this file under the
+\family sans
+layouts
+\family default
+ directory of LyX user directory and reconfigure LyX).
+ After including this module in your document, you should be able to use
+
+\family sans
+Insert\SpecialChar \menuseparator
+Custom Insets\SpecialChar \menuseparator
+FragileFrame
+\family default
+, which is essentially
+\family typewriter
+
+\backslash
+begin{frame}[fragile]
+\family default
+.
+\end_layout
+
+\begin_layout Subsection
+Can I define my own R script to compile the Rnw document?
+\end_layout
+
+\begin_layout Standard
+Yes, of course.
+ First you need to understand how the R script
+\family typewriter
+$$s
+\family sans
+/scripts/lyxsweave.R
+\family default
+ works, which was introduced previously, and we recommend you to read the
+ R source code as well (on how R takes the paths and uses
+\emph on
+Sweave()
+\emph default
+ to handle the Rnw document).
+ Then you put your customized
+\family sans
+lyxsweave.R
+\family default
+ under the
+\family sans
+scripts
+\family default
+ directory of your
+\emph on
+user directory
+\emph default
+ (again, see
+\family sans
+Help\SpecialChar \menuseparator
+About LyX
+\family default
+).
+ Note LyX will check the
+\emph on
+user directory
+\emph default
+ before going to its own
+\emph on
+library directory
+\emph default
+; if an R script
+\family sans
+lyxsweave.R
+\family default
+ is found in the user directory, it will be used.
+ It is not recommended to hack the script under the LyX library directory
+ directly, since updating LyX will override you modified script (the user
+ directory will not be affected).
+\end_layout
+
+\begin_layout Standard
+Beside the support for the official Sweave in R, the
+\series bold
+knitr
+\series default
+ package is also supported, which is an alternative tool to Sweave; the
+ corresponding module is named
+\family sans
+Rnw (knitr)
+\family default
+.