r - LaTeX 和knitr - 插入 R 代码时出错

标签 r latex knitr

我有一个具有以下结构的文档。

\documentclass[11pt]{article}

\begin{document}
\title{Something}
\author{Andreas}
\date{May 8th, 2013} \maketitle

\section{Introduction}
\paragraph{...}

<<>>=
2+2
@

<<>>=
require('tm')
@

\begin{itemize}
  \item{asdf}
\end{itemize}

some text here.

\section{Intro}

More text.

\section{Other Stuff}

<<>>=
pdf <- readPDF(PdftotextOptions = '-layout')
@

<<eval=FALSE>>=
text <- pdf(elem = list(uri = file.name),
            language = 'en',
            id = 'id1')
@

\end{document}

当我在 R 中运行以下命令时,出现以下错误:

knit('test.rnw')

processing file: test.rnw
  |.......                                                          |  11%
  ordinary text without R code

  |..............                                                   |  22%
label: unnamed-chunk-1
Quitting from lines 12-13 (test.rnw) 
Error in pdf_doc(file, cache = FALSE) : 
  'file' must be a character string or a file/raw connection

我不明白这个错误,并且似乎无法一致地重现该问题。我从一个空白文档开始,添加了一些运行良好的 R 代码。然后,我到达了它停止正确编译的地步。然后似乎我可以删除最近添加的代码块,但我仍然遇到相同的错误。

session 信息:

R version 3.0.0 (2013-04-03)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] tm_0.5-8.3 knitr_1.2 

loaded via a namespace (and not attached):
[1] digest_0.6.3   evaluate_0.4.3 formatR_0.7    slam_0.1-28    stringr_0.6.2 
[6] tools_3.0.0   

有什么建议吗?如果需要更多信息,请告诉我。谢谢。

最佳答案

您的问题并不完全可以复制,但它确实可能表明发生了什么。你有一个变量 file.name被传递到 pdf()命令,但knitr找不到它。当我尝试运行你的代码时,我也不能这样做,因为它从未在knitr文档中定义过。

当你编译knitr文件时,R会从一个全新的空环境开始。如果您之前设置过file.name之前在您的工作区中,knitr 不会自动加载它。在使用之前,您需要将其设置为一个 block :

<<>>=
require('tm')
file.name <- #something#
@

如果您正在加载文件,您可能需要使用绝对路径或 setwd()让它发挥作用。

更新:

您并没有尝试实际评估 text ,所以未定义 file.name不是问题。我认为主要问题是您正在重命名内置 pdf()功能。使用 pdf <- readPDF(PdftotextOptions = '-layout') 时出现错误,但当我使用不同的变量名称时,它会一致地编译,例如 pdf.asdf <- readPDF(PdftotextOptions = '-layout') .

关于r - LaTeX 和knitr - 插入 R 代码时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16423664/

相关文章:

正则表达式匹配其他标签(字符串对)

r - Brew 和 knit 一份 PDF 报告由带有特殊字符的变量分割 (å æ ø) - 编码问题

r - 无法在 Linux 中安装 R tseries、quadprog、xts 包

r - 在 R 中的函数内使用参数作为变量名

优胜美地 (OS X 10.10) 中的 Rcmdr 启动错误

latex - 如何使用 RMarkdown 在 fig.caption 中使用希腊字母?

R cmd 检查 latex 错误 : FATAL pdflatex - GUI framework cannot be initialized

jupyter-notebook - 如何将 Rmd 文档转换为 jupyter 笔记本

r - 使用RMarkdown的标题中的图形名称

r - 结合 coord_proj 和 geom_raster