R Sweave - 文本和图表将打印机转换为两个不同的文件

时间:2015-02-06 09:39:54

标签: r sweave

我想开始使用Sweave(我对LaTeX很熟悉,尤其是作为学生的日子)。

试着了解如何使用它,我正在经历this intro

我基本上将他们的示例文件(见下文)复制到Rstudio中,然后单击“编译PDF”。

但是会发生的情况是,带有测试等R输出的文本会打印到与我的.Rnw文件同名的PDF,而图则会打印到另一个名为Rplots.pdf的文件。

如何将图表和文本打印到同一个文件?如果我错过了一些明显的东西,我会提前道歉,这是我今天第一次使用Sweave。

testSweave.Rnw:

\documentclass{article}

\usepackage{graphicx, verbatim}
\setlength{\textwidth}{6.5in} 
\setlength{\textheight}{9in}
\setlength{\oddsidemargin}{0in} 
\setlength{\evensidemargin}{0in}
\setlength{\topmargin}{-1.5cm}

\begin{document}
\SweaveOpts{concordance=TRUE}
\begin{center}
{\bf \Large Stat 500 Assignment 1\\}
\end{center}

Using the rock data in the datasets package. First we do some plots:\\
\setkeys{Gin}{width=.3\linewidth}
<<>>=
data(rock)
require(ggplot2)
plot1 = qplot(x=area, y=log(perm), data=rock) + theme_bw() + geom_smooth(col="red")
print(plot1)
@
%%  lattice and ggplots must be inside a print statement to show up
<<>>=
print(plot1 + aes(x = peri) )
@
<<>>=
print(plot1 + aes(x = shape) )
@

 Now go back and remove the \%\% comments on the line 15 above here  
 to set each plot width to .3
 times linewidth, and the three plots should fit on one line.  If you leave a      blank line between the three code chunks above, they will start on new lines.

Summary of the linear model:
<<>>=
  rock.lmfit <- lm(log(perm) ~ ., rock)
  summary(rock.lmfit)
 @

 <<>>=
 xtable::xtable( summary(rock.lmfit)$coef, digits=5)  
 @
 <<>>=
 rock.rlmfit = MASS::rlm( log(perm) ~ ., rock)
 xtable::xtable( summary(rock.rlmfit)$coef, digits = 4)
  ## assumes that you have the xtable package available. It creates latex     tables.


#To print any R object use a \verb|\Sexpr{any_R_object}| statement like this:
#AIC of the linear model is \Sexpr{AIC(rock.lmfit)}.  
@

\end{document}

1 个答案:

答案 0 :(得分:0)

我找到了解决方案!我不知道为什么他们在介绍中省略了这个,但无论如何添加一个“fig = TRUE”语句就可以了。

E.g。在第一个块中:

<<>>=
data(rock)
require(ggplot2)
plot1 = qplot(x=area, y=log(perm), data=rock) + theme_bw() + geom_smooth(col="red")
print(plot1)
@

我所要做的就是添加一些内容:

<<fig = TRUE>>=
data(rock)
require(ggplot2)
plot1 = qplot(x=area, y=log(perm), data=rock) + theme_bw() + geom_smooth(col="red")
print(plot1)
@

现在全部打印到一个文件。