如何将R包快照到packrat?

问题描述 投票:4回答:1

我正在将packrat用于本地R程序包。我试图将MultinomialCI添加为依赖项,但无法将其加载到packrat中。特别是,我不知道如何手动快照。

Rstudio的软件包查看器看起来与此类似:

| Name          | Description | Version | Packrat | Source    |  
|-------------------------------------------------------------|  
| MultinomialCI | blah blah   | 1.0     |         |           |
|-------------------------------------------------------------|  

我知道我希望Packrat字段为非空或与Version字段中的1.0匹配。我不确定Source为什么为空白-也许这是问题的一部分?我使用install.packages从CRAN安装了MultinomialCI。

我也尝试过使用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
r r-package packrat
1个回答
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()
© www.soinside.com 2019 - 2024. All rights reserved.