Dav*_*uer 28 coding-style r package roxygen
我写了一个R包,现在是一个合作者(最近的CS毕业生,他是R的新手)正在编辑和重构代码.在这个过程中,他将我的功能划分为更小,更通用的功能.
他的所作所为是有道理的,但是当我开始时package.skeleton()
,每个功能都有一个文件.现在,他添加了主要功能所依赖的功能,但这可能在功能本身之外的使用有限.
他建议所有函数都放在一个文件中,但我反对,因为当我们处理不同的文件时,它更容易进行版本控制.
我已经开始使用roxygen来记录文本中的每个功能.
处理函数的推荐方法是什么:显然辅助函数应该与main函数保持一致,但是我需要在多大程度上记录辅助函数?
@export
评论中的建议很有帮助,但我很想知道其他人如何组织他们的代码.
Jor*_*eys 29
我在两个条件下削减了我的功能:
我确实在main函数的文件中包含了所谓的辅助函数,但只要这些辅助函数不在任何其他函数中使用.实际上,我认为它们嵌套在main函数中.我确实理解了你的版本控制论证,但更改辅助函数归结为改变main函数的性能,所以我认为将它们保存在同一个文件中没有问题.
一些辅助函数可能在不同的其他函数中使用,然后我将它们保存在自己的文件中.我经常导出这些功能,因为它们可能对用户有用.将此与例如lm
和底层进行比较lm.fit
,其中高级用户可以正确地使用它lm.fit
来加速代码等.
我使用相当一些包中使用的命名约定(并从linux派生),通过点前面的每个"隐藏"函数.这样做
.helper.function <- function(x, ...){
... some code ...
}
main.function <- function(x, ...){
...some code, including .helper.function(y, ...)
}
Run Code Online (Sandbox Code Playgroud)
我明确地@export所有需要导出的函数,而不是辅助函数.判断一个函数是否可能对最终用户感兴趣并不总是很容易,但在大多数情况下它非常清楚.
举一个例子:几行代码来切断NA线我认为是辅助函数.将数据集转换为导出和文档的正确格式的更复杂的功能.
因人而异
归档时间: |
|
查看次数: |
4425 次 |
最近记录: |