读取包NAMESPACE文件

标签 r

我正在寻找一种快速的 R 解决方案来读取包 NAMESPACE 文件。该解决方案应包含已预处理(和聚合)的记录以及单独的导入和导出。

不幸的是,我不能使用getNamespaceExports("dplyr")/getNamespaceImports("dplyr"),因为他们需要包加载到 R session ,速度太慢。

我需要一个简单地处理 NAMESPACE 文件中的文本的解决方案。任何使用外部包的解决方案以及部分解决方案仍然受到欢迎。

我们可以通过像 readLines("https://raw.githubusercontent.com/cran/dplyr/master/NAMESPACE") 这样的调用来获取原始数据。 roxygen2 生成的文件格式正确,但并非所有手动生成的文件都是如此。

编辑:

感谢 Konrad R. 的回答,我可以在我的新 CRAN 包 - pacs 中开发此类功能。我建议检查 pacs::pac_namespace 函数。甚至还有一个函数更进一步,比较不同软件包版本 pacs::pac_comapre_namespace 之间的 NAMESPACE 文件。

最佳答案

该函数作为 base::parseNamespaceFile 包含在 R 中。不幸的是,该函数并不直接将路径作为参数。相反,它根据包名称和库位置构建路径。然而,有了这些知识,你应该能够调用它;例如:

parseNamespaceFile('dplyr', .libPaths()[1L])

编辑

有人必须记住,整个包导入(如import(rlang))仍然必须使用相同的函数调用,并提取它们的导出。两个核心元素是在 NAMESPACE 代码上使用 parse,然后使用递归提取函数 parseDirective

关于读取包NAMESPACE文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68625994/

相关文章:

c++ - rcpp 使用第三方库 Kvaser kvmlib

r - 重复行,以便所有列保持不变,但一列依次变大

r - 检查是否安装了程序

r - 使用 dplyr 跨多行修改值的更有效方法

c++ - 使具有依赖项的 C++ 库在 R 中可用

r - 数据框所有行的平均列值

R For 循环执行 Fisher 测试 - 错误消息

r - Plotly:如何使用 add_annotations 设置箭头的样式和颜色?

终端 Linux 中的 R 工作区

r - 在 Mac 10.11.3 上使用 RPostgreSQL 将 R 连接到 Redshift