Knitr:R包检查错误,找不到对象'opts_chunk'

时间:2013-05-25 18:37:33

标签: r knitr rstudio vignette

检查我的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
谢毅辉(knitr developer)说,那是因为在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   

5 个答案:

答案 0 :(得分:50)

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

之前

答案 1 :(得分:1)

您必须先加载knitr库,请尝试以下操作:

```{r setoptions, echo=FALSE}
library(knitr)
opts_chunk$set(cache = TRUE, fig.path = "DFSurveyImages/", dev = "pdf")```

答案 2 :(得分: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

答案 3 :(得分:-1)

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

  

错误:找不到对象'opts_chunk'   执行暂停

检查或构建程序包时出现

错误,程序包检查代码无法识别您的.Rnw文件应该knit而不是Sweave。检查您是否有以下内容:

  1. 如果你有R 3.0.0或者,那么这些插图位于插图目录中 更高(这是这篇文章的解决方案), cran.r-project.org/doc/manuals/r-devel/R-exts.html#Non_002dSweave-vignettes

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

  3. 在包描述文件中指定VignetteBuilder: knitr,然后

  4. 如果仅需要knitr,请在DESCRIPTION中添加Suggests: knitr 晕影

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

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

答案 4 :(得分:-1)

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