使用Sweave和Latex,情节是空的

时间:2012-04-18 16:21:42

标签: r sweave knitr

我想用我用R获得的图形进行报告。在这里,我向您展示了我设计的site_rose(site_ref)site_time_series(site_ref)生成的图像。 enter image description here

enter image description here

但是在运行sweave('Profile.Rnw')并获得Profile.tex之后,我获得了Profile-002.pdf和Profile-003.pdf,这两个文档的最后两个文件都是0KB。所以我得到了一个没有任何数字的.pdf报告。在这里,我向您展示代码:

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}

\title{Anàlisi in situ emplaçament}
\author{Jonel Palou Visa}

\begin{document}
\maketitle
\begin{center}
<<fig=TRUE,echo=TRUE>>=
 site_ref <- site_time_series(site_ref,peaks=T,stationary=T)
@
\end{center}

\begin{center}
<<fig=TRUE,echo=TRUE>>=
site_rose(site_ref)
@

\end{center}

\end{document}

我想知道我调用的新设备是否存在问题,以便绘制数字或我真正的问题是什么。 这两个函数的代码太大而无法在这里显示,这些函数中没有任何外推因为得到的数字我只调用plot(...)

2 个答案:

答案 0 :(得分:11)

如果没有您创建的两个函数的代码,仍然不清楚出了什么问题。但是,如果您使用的latticeggplot2未在printggplot2的对象上调用lattice。在命令行上,这些类型的图表起作用,因为打印被隐含地调用。所以:

print(site_rose(site_ref))

应该产生正确的结果。或者,您可以开始使用knitr代替Sweaveknitr没有此问题。一般来说,我建议使用knitr而不是Sweave。

答案 1 :(得分:2)

这是整个Sweave档案吗?在创建Sweave文档时,您将无法重用当前环境变量中定义的变量。 Sweave的重点是从头到尾重现一些分析,所以这不是一个好的方法。

我建议在此Sweave文档中包含生成site_ref变量所需的任何分析。

如果您坚持使用快捷方式,则可以保存当前的R环境并将其作为Sweave文档中的第一个命令加载,以提供对这些变量的访问。

使用Stangle从Sweave文档中提取R代码,然后创建一个新的R会话并尝试运行该代码。您可能会收到有关未定义变量或有关未定义函数的消息的错误。您应该能够在空的环境中运行Sweave文档中包含的R代码并使其成功运行。然后,您就可以将其渲染为PDF格式了。