Как сделать снимок R пакета для упаковки?
Я использую packrat
для моего местного пакета R. Я пытаюсь добавить MultinomialCI
как зависимость, но я не могу загрузить его в packrat
, В частности, я не знаю, как сделать снимок вручную.
Просмотрщик пакетов Rstudio выглядит примерно так:
| Name | Description | Version | Packrat | Source |
|-------------------------------------------------------------|
| MultinomialCI | blah blah | 1.0 | | |
|-------------------------------------------------------------|
Я понимаю я хочу Packrat
поле должно быть не пустым или соответствовать 1.0 в Version
поле. Я не уверен почему Source
пусто - возможно, это является частью проблемы? Я установил MultinomialCI из CRAN, используя install.packages
,
Я попытался запустить снимок вручную с packrat::snapshot
тоже:
> packrat::snapshot()
Error in findLocalRepoForPkg(pkg, repos, fatal = fatal) :
No package 'file182c4636542b' found in local repositories specified
Меня раздражает ошибка "Нет пакета" file182c4636542b' ...". Надо искать имя моей посылки, правильно?
Я пробовал звонить packrat::snapshot('C:\\My\\Package\\Directory')
но безрезультатно. Та же ошибка:/
Вот и информация о моей сессии,
> sessionInfo()
R version 3.3.0 (2016-05-03)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_3.3.0 packrat_0.4.7-1
Я ценю любую помощь заранее!
Обновить
Я пытался бежать packrat::restore
, который затем узнал имя моего пакета с той же ошибкой:
> packrat::restore()
Error in findLocalRepoForPkg(pkg, repos, fatal = fatal) :
No package 'my_pkg' found in local repositories specified
0 ответов
Я сталкивался с этой ошибкой снова и снова, поэтому написал небольшую рекурсию, чтобы перезапустить процесс, пока он не будет выполнен.
snapshot_install_recurse = function(){
tryCatch(
packrat::snapshot(),
error = function(e) {
pkg =
e$message %>%
strsplit("'") %>%
extract2(1) %>%
extract2(2)
cat("Installing", pkg, "and restarting")
install.packages(pkg)
snapshot_install_recurse()
}
)
}
snapshot_install_recurse()