R 与 LaTeX

R 与 LaTeX

    R 是一种编程语言,广泛的用于数据挖掘和统计分析中。
她有很多实用的特性,比如她对LaTeX的支持。通过一些技术手段,
R语言可以生成LaTeX脚本,并把计算结果和可视化图形信息包括在
LaTeX脚本中。

    LaTeX 是一个排版系统,在数学和其他科学领域有着广泛的应用,
她最初是由Leslie Lamport开发。LaTeX把TeX作为格式化引擎,
Tex是高德纳大师开发的。
LaTex和Tex的关系在"LaTeX2e: An unofficial reference manual"中这样描述:
    "LaTeX is a macro package for the TeX engine."

    可以使用R语言的utils::Sweave函数生成LaTeX脚本(我只会这招)。
要学习Sweave函数的使用,最好从了解Rnw混编文件开始。
这个混编文件就是将R语言和LaTeX两种程序代码混编到一个文件中。
文件中有一组带有参数的特殊标识,是用来分辨哪些部分是R语言程序,需要R语言解释。
这些标识的参数指定R语言解释的结果如何并入LaTeX脚本。
R语言通过Sweave函数和Rnw混编代码实现了对LaTeX系统的支持。

    文章最后是一个简陋的Rnw混编代码例子。代码中的
        <<[参数列表]>>=
        [R语言代码]
        @
是用来标示R语言代码,由R语言进行解释,其他部分都是LaTeX系统负责解释。
结合文章最后的代码,简单解释一下这些标识参数的意思:
echo=FALSE: 不打印R语句本身
results=tex: R函数输出的是一段LaTeX代码
results=hide: 不输出R函数返回值
fig=TRUE: R函数输出是一个图片

    有了Rnw文件,就可以在R的REPL中输入:
         Sweave("./test.Rnw")
成功调用这个函数之后,会生成LaTeX文件 test.tex,
之后在shell中执行命令:
         pdflatex ./test.tex
就可以生成 test.pdf 文件,该pdf文件中包含了我想要的
R语言计算的文字结果和图形。

我的机器环境:
OS: Fedora release 22 (Twenty Two), Kernel:4.4.6-201.fc22.i686+PAE
R: 3.2.3
pdflatex: 3.14159265-2.6-1.40.15 (TeX Live 2014)

test.Rnw:
============================================
\documentclass[10pt]{article}
\title{hello,world}
\author{lixiaodan}

\usepackage{amsmath}

\begin{document}

\maketitle


<>=
library(xtable)

d <- data.frame(x = rnorm(10, mean = 1), y = 0)
d <- rbind(d, data.frame(x = rnorm(10, mean = 10), y = 1))
@

<>=
print(xtable(summary(d)))
print(xtable(d))
@

\newpage

<>=
fit <- glm(y ~ x, data = d, family = binomial)
@

<>=
summary(fit)
@

<>=
predict(fit, type="response")
@

\begin{figure}

\centering

<>==
plot(y ~ x, data = d)
@
\caption{Picture}
\label{fig:pic}
\end{figure}

\newpage

\begin{align*}
    & e^{\pi i} = -1 \\
    & \lim_{n \to \infty} \left(1 + \frac{1}{n}\right)^n = e \\
    & \frac{\pi ^ 2}{6} = \frac{1}{1^2} + \frac{1}{2^2} + \frac{1}{3^2} + \frac{1}{4^2} + \frac{1}{5^2} + \ldots \\
\end{align*}

\end{document}

============================================

参考:
http://www.ctan.org/tex-archive/info/lshort/
http://home.gna.org/latexrefman/
http://www.statistik.lmu.de/~leisch/Sweave/
http://stat.ethz.ch/R-manual/R-devel/library/utils/doc/Sweave.pdf

谢谢。

你可能感兴趣的:(数据挖掘)