问题描述
检查我的R包时出现以下错误
I am getting the following error when checking my R package
> 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(编织程序开发人员)说,这是因为在RStudio中,未将knitr设置为编织.Rnw文件的方法,.我在R包Description文件中的工具和构建选项中都设置了knitr:
Yihui Xie (knitr developer) said that was because in RStudio, knitr was not set as the method for weaving .Rnw files, https://groups.google.com/forum/?fromgroups#!topic/knitr/9672CBbc8CM. I have knitr set in both the tools and build options, in the R package DESCRIPTION file I have:
VignetteBuilder: knitr
Suggests: knitr
在小插图中,我有:
%\VignetteEngine{knitr}
%\VignetteDepends{knitr,xtable,TSP}
当我在RStudio中使用pdf编译或使用knit("KNITR.Rnw")时,它可以正确编译.当我检查包裹时,每个小插图都会出现上述错误.我什至
When I use compile the pdf in RStudio or use knit("KNITR.Rnw"), it compiles correctly. When I check the package, I get the above errors for each vignette. I even put
require(knitr)
在我的opts_chunk $ set语句之前.那没有帮助.我还从命令行运行了检查,并得到了相同的错误.谢谢您的帮助.
before my opts_chunk$set statement. That did not help. I have also run the check from the command line and gotten the same error. Thank you for any help.
Knitr是有用的软件包.我在小插图中运行了长时间的模拟,并且缓存使纠正错误成为可能,而无需每次都运行模拟.也没有尝试查找Sweave.sty文件的问题.
Knitr is a useful package. I run long simulations in vignettes, and the cache makes it possible to correct errors without running the simulations over each time. It does not have the problem of trying to find the Sweave.sty file either.
这是我的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
推荐答案
对于编织小插图,您可以使用knit()或RStudio中的编译PDF"按钮进行编译,但是得到一个
For a knitr vignette that you can compile using knit() or with the "Compile PDF" button in RStudio, but that gets an
在检查或构建软件包时出错,软件包检查代码无法识别您的.Rnw文件应为knit
ed而不为Sweave
ed.检查您是否具有以下条件:
error when checking or building the package, the package check code is not recognizing that your .Rnw file should be knit
ed and not Sweave
ed. Check that you have the following:
-
小插曲位于小插图目录中(如果您具有R 3.0.0或更高(这是该帖子的解决方案),cran.r-project.org/doc/manuals/r-devel/R-exts.html#Non_002dSweave-vignettes
The vignettes are in the vignette directory, if you have R 3.0.0 orhigher (this was the solution to this post),cran.r-project.org/doc/manuals/r-devel/R-exts.html#Non_002dSweave-vignettes
在小插图元数据中包含%\VignetteEngine{knitr::knitr}
,yihui.name/knitr/demo/vignette/
Include %\VignetteEngine{knitr::knitr}
in the vignette metadata,yihui.name/knitr/demo/vignette/
在软件包DESCRIPTION文件中指定VignetteBuilder: knitr
,然后
Specify VignetteBuilder: knitr
in the package DESCRIPTION file, and
在说明中添加Suggests: knitr
如果仅需要编织小插曲
Add Suggests: knitr
in DESCRIPTION if knitr is needed only forvignettes
如果这不起作用,请按照Ben Bolker,Yuhui和Tyler Rinker的建议,在opts_chunk()
中设置全局选项之前添加require(knitr)语句.
If that does not work add a require(knitr) statement before you set your global options in opts_chunk()
, as Ben Bolker, Yuhui and Tyler Rinker suggested.
如果在RStudio中: 在构建配置"和工具"选项中,将编织"选项设置为knitr,www.rstudio.com/ide/docs/authoring/rnw_weave
If in RStudio: In BOTH the Build configuration and Tool options, set the Sweave option to knitr, www.rstudio.com/ide/docs/authoring/rnw_weave
这篇关于编织器:R包检查错误,未找到对象"opts_chunk"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!