gpt4 book ai didi

r - `renv`有可能是 "bypassed"或者暂时关闭吗?

转载 作者:行者123 更新时间:2023-12-02 18:25:54 33 4
gpt4 key购买 nike

我有一个 RStudio 项目,它使用 renv 管理包,效果很好。

但有时我想在我的主环境(正确的词?)上使用库来调试或探索一些我不想添加到项目中的东西。例如,也许我想运行一些长调试函数并在最后调用 beepr::beep() 。如果不将 beepr 包安装到项目中,这可能吗?

long_process()
beepr::beep() # How do I make this call?

最佳答案

您可以从技术上禁用沙箱,这是 renv 阻止系统库中安装的软件包在项目中可用的地方(这就是为什么您无法使用 beepr::beep() 在您的示例中。您可以轻松更改用户配置,只需查看 documentation from env 。此处的设置为 renv.config.sandbox.enabled

但是,我认为这不是最好的选择。根据 ?renv::snapshot 中描述的快照类型设置,您不必担心安装 beepr,而是将其添加到锁定文件中。

您可以使用以下方法检查或设置快照类型:

renv::settings$snapshot.type()

如果您在环境中安装了 beepr 软件包,那么根据您将获得的类型:

  • “all”:唯一有问题的设置。如果您在主动加载 beepr 的情况下运行快照,它将被添加到锁定文件中,这不是您想要的。

  • “隐式”:只要保存到库的 R 代码中没有引用 beepr,它就不会被添加到锁定文件中.

  • "explicit":仅添加 DESCRIPTION 中定义的包。

  • "custom":顾名思义,是自定义的,但取决于项目中保存的文件,因此仅在保存在某处时才会添加 beepr 而不仅仅是通过调试以交互方式使用。

因此,总而言之,除非您使用"all",否则您应该可以安全地安装和使用beepr!如果您使用的是"all",那么请务必在运行snapshot()之前detach("package:beepr", unload = TRUE) >.

关于r - `renv`有可能是 "bypassed"或者暂时关闭吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70189319/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com