2015-06-26 4 views
2

Я пытаюсь связать свободные концы пакета, и я почти не отношусь к виньеткам. У меня есть четыре виньетки в пакете. Для ссылок мы будем называть их виньетки A - D. Когда я бегом R CMD check, я получаю ошибкуОшибка: обработка виньетки ...: «что» должно быть символьной строкой или функцией

Error: processing vignette 'Vignette A.Rmd' failed with diagnostics: 
'what' must be a character string or a function 

Однако, в любое время я обрабатываю Vignette А с помощью кнопки вязаной в R Studio, документ компилируется нормально.

Итак, я начал играть, и в итоге я обнаружил, что R CMD check терпит неудачу в любое время, когда у меня есть оба виньетки A и C в пакете. Но каждый раз, когда я удаляю одну из этих двух виньеток, R CMD check проходит без ошибок.

У меня нет никаких подсказок, с чего начать с этого. Любые идеи о том, что может быть проблемой с этими двумя файлами, сосуществующими в пакете?

Я использую R 3.2.0. пакет идет речь в ветке развития на Github

Выход из файла журнала .Rcheck

* checking files in 'vignettes' ... OK 
* checking examples ... OK 
* checking for unstated dependencies in vignettes ... OK 
* checking package vignettes in 'inst/doc' ... WARNING 
Package vignettes without corresponding PDF/HTML: 
    'DecisionNetworks.Rmd' 
    'GettingStartedWithHydeNet.Rmd' 
    'HydeNetPlots.Rmd' 
    'WorkingWithHydeNetObjects.Rmd' 

* checking running R code from vignettes ... OK 
* checking re-building of vignette outputs ... NOTE 
Error in re-building vignettes: 
    ... 
Loading required package: nnet 
Loading required package: rjags 
Loading required package: coda 
Linked to JAGS 3.4.0 
Loaded modules: basemod,bugs 
Quitting from lines 173-176 (WorkingWithHydeNetObjects.Rmd) 
Error: processing vignette 'WorkingWithHydeNetObjects.Rmd' failed with diagnostics: 
'what' must be a character string or a function 
Execution halted 
+0

Не можете ли вы настроить проверку R CMD для создания журнала ошибок? –

+0

Запуск 'R CMD check --help' только теперь, похоже, вы уже должны получать файл в своем рабочем каталоге с расширением:' .Rcheck' –

+0

Эта часть мне еще не пришла в голову. Я использовал 'devtools :: check', но он запускает' build', прежде чем он запускает 'check', поэтому я не получал выход, потому что я никогда не получал' check'. Сейчас я запускаю 'check' из командной строки. – Benjamin

ответ

2

намек Yuhui и получила меня к решению. Сначала я побежал knitr::knit('vignettes/WorkingWithHydeNetObjects.Rmd'), и все сработало нормально. Затем я попробовал запустить knit на другой виньетке с проблемой сосуществования и не обнаружил ошибок. Затем я снова запустил knit на WorkingWithHydeNetObjects.Rmd, и на этот раз возникла ошибка.

traceback идентифицирован error как исходящий от do.call. Я передавал отсутствующий аргумент do.call, когда он должен был передавать символьную строку. Поведение функций было изменено путем изменения и опции в другой виньетке.

Таким образом, мораль этой истории не предполагает, что каждая виньетка будет построена в ее собственной среде. Любые варианты, установленные в одной виньетке, переносятся на последующие виньетки.