+\begin_layout Plain Layout
+
+t1 <- t.test(x)
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Note that we can easily integrate some numbers into standard text; this
+ is done with the command
+\family typewriter
+
+\backslash
+Sexpr{}
+\family default
+, and the corresponding \SpecialChar LyX
+ menu is
+\family sans
+Insert\SpecialChar menuseparator
+Custom Insets\SpecialChar menuseparator
+S/R expression
+\family default
+, or alternatively just use \SpecialChar TeX
+ code.
+ For example, the third element of the vector
+\family typewriter
+x
+\family default
+ is
+\begin_inset Flex S/R expression
+status collapsed
+
+\begin_layout Plain Layout
+
+x[3]
+\end_layout
+
+\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 Flex Chunk
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Argument 1
+status open
+
+\begin_layout Plain Layout
+
+iris-summary
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+
+summary(iris[,-5])
+\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 Standard
+
+\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
+
+
+\begin_inset Flex Chunk
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Argument 1
+status open
+
+\begin_layout Plain Layout
+
+xtable-demo,results=tex,echo=FALSE
+\end_layout
+
+\end_inset
+
+
+\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
+
+\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 \SpecialChar 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 Note Note
+status open
+
+\begin_layout Plain Layout
+Both eps and pdf are set to true so that both latex and pdflatex work.
+ In practice, you would probably just choose one.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\align center
+\begin_inset Flex Chunk
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Argument 1
+status open
+
+\begin_layout Plain Layout
+
+iris-pairs,fig=TRUE,width=4.5,height=4.5,eps=TRUE,pdf=TRUE
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+
+pairs(iris, col = iris$Species)
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\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 Flex Chunk
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Argument 1
+status open
+
+\begin_layout Plain Layout
+
+iris-boxplots,fig=TRUE,width=7,height=2,keep.source=F,eps=T,pdf=T
+\end_layout
+
+\end_inset
+
+
+\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
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\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 \SpecialChar LyX
+ document contains literate programming components
+ with R, so that \SpecialChar LyX
+ will handle such documents according to the specific converter
+s (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 \SpecialChar LyX
+.
+ This script takes an
+\family sans
+Rnw
+\family default
+ document from \SpecialChar LyX
+ and call Sweave to process it to a \SpecialChar TeX
+ document, then \SpecialChar LyX
+ takes
+ care of the rest of work.
+\end_layout
+
+\begin_layout Standard
+The converter from the
+\family sans
+sweave
+\family default
+ format to \SpecialChar 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 \SpecialChar LyX
+ library directory
+\family typewriter
+$$s
+\family default
+ can be found from the menu
+\family sans
+Help\SpecialChar menuseparator
+About \SpecialChar LyX
+
+\family default
+.
+ All the rest of options passed to R are explained in the R script, and
+ the \SpecialChar 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 \SpecialChar 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 \SpecialChar 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 \SpecialChar LaTeX
+ cannot find
+\family sans
+Sweave.sty
+\family default
+, this R script will copy it to the temporary directory automatically where
+ the \SpecialChar 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 "https://www.lyx.org/trac/ticket/7551"
+literal "false"
+
+\end_inset
+
+) is that if the filename (without extension) contains dots, \SpecialChar 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
+\SpecialChar 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 \SpecialChar 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 issue with the \SpecialChar TeX
+ code environment is the Sweave code chunk may fail
+ when we change the alignment of the chunk paragraph in \SpecialChar LyX
+ (using
+\family sans
+Paragraph settings
+\family default
+), because \SpecialChar 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.
+ This does not happen when using the Chunk inset instead of the \SpecialChar TeX
+ code environmen
+t.
+
+\end_layout
+
+\begin_layout Section
+Resources
+\end_layout
+
+\begin_layout Standard
+The user manual of Sweave is at
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+https://stat.ethz.ch/R-manual/R-devel/library/utils/doc/Sweave.pdf
+\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 \SpecialChar LyX
+ and Sweave can be posted to the \SpecialChar LyX
+ mailing list (
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+https://www.lyx.org/MailingLists
+\end_layout
+
+\end_inset
+
+).
+ More \SpecialChar 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 \SpecialChar LaTeX
+ errors if you use Sweave in normal beamer slides in
+ \SpecialChar LyX
+; the reason is the beamer frame that contains verbatim R code.
+ The solution is to use a
+\emph on
+FragileFrame
+\emph default
+ instead of a normal
+\emph on
+Frame
+\emph default
+, or to pass the option
+\family typewriter
+fragile
+\family default
+ to the frame title via
+\family sans
+Insert\SpecialChar menuseparator
+Frame Options
+\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 \SpecialChar LyX
+
+\family default
+).
+ Note \SpecialChar 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 \SpecialChar LyX
+ library directory directly,
+ since updating \SpecialChar 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
+.