如何判断我在R脚本中没有使用哪些软件包?

Mic*_*ico 8 packages r

随着我的代码从版本发展到版本,我知道有一些软件包,我已经找到了更好/更合适的软件包,用于手头的任务或其目的仅限于我现在已经分阶段的一段代码出.

有没有简单的方法来判断在给定的脚本中实际使用了哪些加载的包?我的标题开始变得杂乱无章.

cel*_*neu 7

你考虑过使用packrat吗?

packrat::clean() 例如,会删除未使用的包.


Mic*_*ico 7

我刚刚开始编写一个快速而肮脏的函数来处理这个我调用的函数stale_package_check,并且我已将它添加到我的包中(funchir); 此功能尚未在CRAN版本上.

它对library(*)脚本中的所有实例进行快速(非完美)检查,然后对NAMESPACE提供的文件中的所有-exported函数进行正则表达式搜索.

例如,如果我们将以下脚本保存为test.R:

library(data.table)
library(iotools)
DT = data.table(a = 1:3)
Run Code Online (Sandbox Code Playgroud)

然后(从具有该脚本的目录)运行funchir::stale_package_check('test.R'),我们将获得:

从包data.table:data.table匹配的函数

**没有与iotools匹配的导出功能**

它仍处于"beta"版本(例如,我没有花时间匹配require呼叫,library现在只使用呼叫),但仍然有用.