我想开始使用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}
答案 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)
@
现在全部打印到一个文件。