在函数中包含执行函数所需的每个库是不错的做法?
例如,我的文件global.r包含了闪亮应用程序所需的几个功能.目前我在文件顶部有所有需要的包.当我切换项目/复制这些功能时,我必须加载包/将它们包含在新代码中.否则所有需要的包都包含在该函数中.当然,我必须使用新的R会话检查所有功能,但我认为从长远来看这可能有所帮助.
当我尝试加载包两次时,它不会再次加载包,但检查它已经加载.我的主要问题是,如果我以这种方式进行重组,是否会减慢我的功能?
我只看过一次练习,库调用函数内部,所以我不确定.
正如其中一位评论者建议的那样,您应该避免在函数中加载包
第一点是重要的一点.与大多数优化一样,只关注第二点,如果这是一个问题.
既然我们已经确立了原则,那么可能的解决方案是什么.
在小项目中,我有一个名为的文件packages.R,其中包含library我需要的所有呼叫.这来自我的分析脚本的顶部.顺便说一下,我的所有功能都在文件调用中func.R.此工作流程是从先前的SO 问题中窃取/改编的
如果您只导入单个函数,则可以使用该::技巧,例如package::funcA(...),这样可以避免加载包.
对于大型项目,我创建了一个R包来处理所有必要的导入.在构建大型R项目的答案中详细介绍了创建包的好处.