Ошибка опроса Knitr: R, объект 'opts_chunk' не найден
Я получаю следующую ошибку при проверке моего пакета 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 пакета DESCRIPTION у меня есть:
VignetteBuilder: knitr
Suggests: knitr
и в виньетке у меня есть:
%\VignetteEngine{knitr}
%\VignetteDepends{knitr,xtable,TSP}
Когда я использую компиляцию PDF в RStudio или используйте knit ( "KNITR.Rnw" ), он компилируется правильно. Когда я проверяю пакет, я получаю вышеуказанные ошибки для каждой виньетки. Я даже положил
require(knitr)
перед моей командой set opts_chunk $. Это не помогло. Я также проверил проверку из командной строки и получил ту же ошибку. Спасибо за любую помощь.
Натрит - полезный пакет. Я запускаю длинные симуляции в виньетках, и кеш позволяет исправлять ошибки, не запуская имитации за каждый раз. У него нет проблемы с попыткой найти файл 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
Ответы
Ответ 1
Для виньетки, которую вы можете скомпилировать с помощью knit() или с помощью кнопки "Compile PDF" в RStudio, но которая получает
Ошибка: объект 'opts_chunk' не найден Выполнение приостановлено
при проверке или создании пакета код проверки пакета не распознает, что ваш .Rnw файл должен быть knit
ed, а не Sweave
ed. Убедитесь, что у вас есть следующее:
-
Виньетки находятся в каталоге виньетки, если у вас есть R 3.0.0 или
выше (это было решение этой должности),
cran.r-project.org/doc/manuals/r-devel/R-exts.html#Non_002dSweave-vignettes
-
Включить %\VignetteEngine{knitr::knitr}
в метаданные виньетки,
yihui.name/knitr/demo/vignette/
-
Укажите VignetteBuilder: knitr
в файле DESCRIPTION пакета и
-
Добавьте Suggests: knitr
в ОПИСАНИЕ, если knitr необходимо только для
виньетки
Если это не сработает, добавьте инструкцию require (knitr), прежде чем вы установите глобальные параметры в opts_chunk()
, как предположили Ben Bolker, Yuhui и Tyler Rinker.
Если в RStudio:
В BOTH конфигурации Build и опции инструмента установите параметр Sweave для knitr, www.rstudio.com/ide/docs/authoring/rnw_weave
Ответ 2
поставьте library(knitr)
до этого opts_chunk$set(cache = TRUE, fig.path = "DFSurveyImages/", dev = "pdf")
Ответ 3
Изменение опции Sweave для knitr в параметрах Tools работало для меня.