22

检查我的 R 包时出现以下错误

> Error: could not find function "locdata"
> Execution halted
> when running code in ‘DFSurvey.Rnw’
>   ...
> 
> > opts_chunk$set(cache = TRUE, fig.path = "DFSurveyImages/", dev = "pdf")
> 
>   When sourcing ‘DFSurvey.R’:
> Error: object 'opts_chunk' not found
> Execution halted

Yihui Xie(knitr 开发者)表示,这是因为在 RStudio 中,没有将 knitr 设置为编织 .Rnw 文件的方法,https: //groups.google.com/forum/?fromgroups#!topic/knitr/9672CBbc8CM 。我在工具和构建选项中都设置了 knitr,在我拥有的 R 包说明文件中:

VignetteBuilder: knitr
Suggests: knitr

在小插图中我有:

%\VignetteEngine{knitr}
%\VignetteDepends{knitr,xtable,TSP}

当我在 RStudio 中使用编译 pdf 或使用 knit("KNITR.Rnw") 时,它可以正确编译。当我检查包装时,每个小插图都会出现上述错误。我什至把

require(knitr)

在我的 opts_chunk$set 语句之前。那没有帮助。我也从命令行运行了检查并得到了同样的错误。感谢您的任何帮助。

Knitr 是一个有用的软件包。我在小插图中运行长时间的模拟,并且缓存可以纠正错误,而无需每次都运行模拟。它也没有试图找到 Sweave.sty 文件的问题。

这是我的sessionInfo()

> R version 3.0.0 (2013-04-03)
> Platform: x86_64-apple-darwin10.8.0 (64-bit)
> 
> locale:
> [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
> 
> attached base packages:
> [1] tcltk     grid      stats     graphics  grDevices utils     datasets  methods  
> [9] base     
> 
> other attached packages:
>  [1] DualFrame_0.5         xtable_1.7-1          TSP_1.0-7            
>  [4] maptools_0.8-23       lattice_0.20-15       foreign_0.8-53       
>  [7] spsurvey_2.5          sp_1.0-9              stringr_0.6.2        
> [10] sqldf_0.4-6.4         RSQLite.extfuns_0.0.1 chron_2.3-43         
> [13] gsubfn_0.6-5          proto_0.3-10          RSQLite_0.11.3       
> [16] DBI_0.2-7             knitr_1.2             gpclib_1.5-5         
> 
> loaded via a namespace (and not attached):
> [1] deldir_0.0-22  digest_0.6.3   evaluate_0.4.3 formatR_0.7    MASS_7.3-26   
> [6] rgeos_0.2-17   tools_3.0.0   
4

5 回答 5

53

放在library(knitr)这之前opts_chunk$set(cache = TRUE, fig.path = "DFSurveyImages/", dev = "pdf")

于 2013-05-25T18:51:23.207 回答
2

你必须先加载 knitr 库,试试这个:

```{r setoptions, echo=FALSE}
library(knitr)
opts_chunk$set(cache = TRUE, fig.path = "DFSurveyImages/", dev = "pdf")```
于 2019-12-04T15:51:34.953 回答
0

对于可以使用 knit() 或 RStudio 中的“编译 PDF”按钮进行编译的 knitr 小插图,但会得到一个

错误:找不到对象“opts_chunk”执行停止

检查或构建包时出错,包检查代码无法识别您的 .Rnw 文件应该是knited 而不是Sweaveed。检查您是否具备以下条件:

  1. 小插图位于小插图目录中,如果您有 R 3.0.0 或更高版本(这是这篇文章的解决方案),cran.r-project.org/doc/manuals/r-devel/R-exts.html#Non_002dSweave -小插曲

  2. 包含%\VignetteEngine{knitr::knitr}在小插图元数据中,yihui.name/knitr/demo/vignette/

  3. VignetteBuilder: knitr在包说明文件中指定,并且

  4. Suggests: knitr如果仅小插图需要 knitr,请添加说明

如果这不起作用,请在设置全局选项之前添加一个 require(knitr) 语句opts_chunk(),如 Ben Bolker、Yuhui 和 Tyler Rinker 建议的那样。

如果在 RStudio 中:在 Build configuration 和 Tool 选项中,将 Sweave 选项设置为 knitr,www.rstudio.com/ide/docs/authoring/rnw_weave

于 2013-05-30T19:06:29.757 回答
0

在工具选项中将 Sweave 选项更改为 knitr 对我有用。

于 2014-04-24T14:27:06.260 回答
0

我今天遇到了同样的问题。以前总是好的。错误消息是:

Quitting from lines 14-49 (report.Rmd) 
Error in eval(expr, envir, enclos) : object 'opts_chunk' not found

我首先library(knitr)在全局选项之前指定。没有帮助。我在 opts_chunk 之前指定了名称空间,它可以正常工作,例如knitr::opts_chunk.

于 2021-04-07T16:04:04.207 回答