gpt4 book ai didi

r - 在函数中包含库调用?

转载 作者:行者123 更新时间:2023-12-05 00:56:23 24 4
gpt4 key购买 nike

包含在该函数中执行函数所需的每个库是一种好习惯吗?

例如,我的文件 global.r包含我需要一个 Shiny 的应用程序的几个功能。目前我在文件顶部有所有需要的包。当我切换项目/复制这些函数时,我必须加载包/将它们包含在新代码中。否则所有需要的包都包含在该函数中。当然,我必须使用新的 R session 检查所有函数,但我认为从长远来看这可能会有所帮助。

当我尝试两次加载一个包时,它不会再次加载该包,但会检查它是否已经加载。我的主要问题是,如果我以这种方式重组,它是否会减慢我的功能?

我只见过一次这种做法,函数内部的库调用,所以我不确定。

最佳答案

正如一位评论者所建议的那样,您应该避免在函数中加载包,因为

  • 该函数现在具有全局效果 - 作为一般规则,这是需要避免的。
  • 有一个非常小性能打击。

  • 第一点是最大的。与大多数优化一样,如果有问题,只需担心第二点。

    既然我们已经确立了原则,那么可能的解决方案是什么。
  • 在小项目中,我有一个名为 packages.R 的文件包括所有 library我需要的电话。这来源于我的分析脚本的顶部。顺便说一句,我所有的函数都在文件调用中 func.R .此工作流程是从以前的 SO question 中窃取/改编的
  • 如果你只导入一个函数,你可以使用 ::技巧,例如package::funcA(...)这样你就可以避免加载包。
  • 对于较大的项目,我创建了一个 R 包来处理所有必要的导入。此 answer 详细介绍了创建包的好处。关于构建大型 R 项目。
  • 关于r - 在函数中包含库调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36284811/

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