Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何知道我在R命令行中是否处于packrat模式?_R_Package Managers_Packrat - Fatal编程技术网

如何知道我在R命令行中是否处于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也可以实

如果我使用的是RStudio,很容易知道我是否处于packrat模式:我只需打开packages选项卡并单击packrat图标。但是,我不知道有什么命令可以通过编程或在RStudio之外执行。此外,即使我没有处于packrat模式,packrat命令(如packrat::status)也可以工作。

您可以使用packrat::search_path进行推断。看看如何解决这个问题:

禁用了packrat

启用packrat时


使用.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