如何知道我在R命令行中是否处于packrat模式?
如果我使用的是RStudio,很容易知道我是否处于packrat模式:我只需打开packages选项卡并单击packrat图标。但是,我不知道有什么命令可以通过编程或在RStudio之外执行。此外,即使我没有处于packrat模式,packrat命令(如packrat::status)也可以工作。您可以使用packrat::search_path进行推断。看看如何解决这个问题: 禁用了packrat 启用packrat时如何知道我在R命令行中是否处于packrat模式?,r,package-managers,packrat,R,Package Managers,Packrat,如果我使用的是RStudio,很容易知道我是否处于packrat模式:我只需打开packages选项卡并单击packrat图标。但是,我不知道有什么命令可以通过编程或在RStudio之外执行。此外,即使我没有处于packrat模式,packrat命令(如packrat::status)也可以工作。您可以使用packrat::search_path进行推断。看看如何解决这个问题: 禁用了packrat 启用packrat时 使用.libpath而不是packrat::search_path也可以实
使用.libpath而不是packrat::search_path也可以实现同样的效果 为什么packrat::status没有帮助?如果packrat尚未启动,则会出现相应的错误:错误:此项目尚未打包。运行'packrat::init'到init packrat。只有当我在与RStudio项目不一致的工作目录中时,才会收到此消息。当它们重合时,我会得到这样一条消息:以下包在代码中被引用,但在库中或packrat中都不存在:Matrix nlme您需要手动安装这些包,然后使用packrat::snapshot在packrat中记录这些包。我的代码中没有引用nlme。此消息表示packrat处于活动状态。您使用的函数之一在内部使用nlme。按照错误所说的去做,你就会很好。一旦我在RStudio中打开项目,我就能够在没有nlme的情况下运行代码,packrat::status说一切都是最新的。
> packrat::off()
Packrat mode off. Resetting library paths to:
- "/home/ajoe/R/x86_64-pc-linux-gnu-library/3.4"
- "/usr/local/lib/R/site-library"
- "/usr/lib/R/site-library"
- "/usr/lib/R/library"
>
> any(grepl("packrat", packrat::search_path()$lib.dir))
[1] FALSE
> packrat::on()
Packrat mode on. Using library in directory:
- "~/wx/your_project_dir/packrat/lib"
>
> any(grepl("packrat", packrat::search_path()$lib.dir))
[1] TRUE