我正在努力密切关注@hadley'sbook http://r-pkgs.had.co.nz/学习编写 R 包的最佳实践。我很高兴读到这些关于哲学 http://r-pkgs.had.co.nz/intro.html本书内容:
任何可以自动化的事情都应该自动化。尽可能少做
可能用手。尽可能多地利用函数。
因此,当我阅读有关依赖关系以及 NAMESPACE 文件中的导入指令与描述文件中的“Imports:”字段之间的(某种)令人困惑的差异时,我希望roxygen2
会自动处理它们。毕竟 http://r-pkgs.had.co.nz/namespace.html
NAMESPACE 中提到的每个包也必须存在于
导入或依赖字段。
我本来希望roxygen2
将获取我的函数中的每个@import,并确保它包含在描述文件中。但它不会自动执行此操作。
所以我要么必须手动将其添加到说明文件中,要么几乎手动使用devtools::use_package
.
环顾四周寻找答案,我发现了这个question https://stackoverflow.com/questions/8597993/does-roxygen2-automatically-write-namespace-directives-for-imports-packages在 SO 中,@hadley 在评论中确认
目前,命名空间roclet会修改NAMESPACE,但不会修改
描述
和其他帖子(例如here https://stackoverflow.com/questions/9538573/roxygen2-not-fully-updating-description-file or here http://v) where collate_roclet
正在讨论,但是“仅当您的代码有副作用时,这才重要;最常见的原因是您使用的是 S4 http://r-pkgs.had.co.nz/description.html".
我想知道:
- 描述不自动更新的原因(有点与上述哲学相矛盾,这可能是由
roxygen2
) and
- 如果有人已经设计出一种方法来做到这一点
我为该任务编写了一个小 R 包:
https://github.com/markusdumke/pkghelper https://github.com/markusdumke/pkghelper
它扫描 R 代码和命名空间以查找正在使用的包,并将它们添加到Imports
部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)